• python初学-元组、集合


    元组:
    元组基本和列表一样,区别是 元组的值一旦创建 就不能改变了
    tup1=(1,2,3,4,5)
    print(tup1[2])
    -------------------------------------
    元组中只包含一个元素时,需要在元素后面添加逗号
     
    不加逗号:tup1=(10)
    print(type(tup1))
    <class 'int'>
     
    加逗号:tup1=(10,)
    print(type(tup1))
    <class 'tuple'>
    -----------------------------------------
    元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
    url=('192.168.85.130','lzc','root',123456)
    addr=('abc','def','hijk','nmn')
    tup3=url+addr
    print(tup3)
    ------------------------------------------
    一个可变的元组
    tup=('a','b',['A','B'])
    print(tup[2][1])
    tup[2][0]='x'
    tup[2][1]='y'
    print(tup)
     
    结果
    B
    ('a', 'b', ['x', 'y'])
    表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
    总之一句话:元组指向的对象不能变,但是元组中列表的值可以改变
    -----------------------------------------
     
    tup=('192.168.35.130','lzc','root',123456,'mysql')
    tup2=(1,2,3,4,5,)
    # 计算元素个数
    # print(len(tup))
    # 返回元素中的最小值(必须是int类型,不然会报错)
    # print(min(tup2))
    # 列表转换为元组
    # list=[1,2,3,4,5,6]
    # tup3=tuple(list)
    # print(type(tup))
    # 查:
    # print(tup[0])
    # 取元组的的下标为2的值
    # print(tup[2])
    # 去元组前面3个元素的值
    # print(tup[:3])
    # 链接两个元组
    # tup3=tup+tup2
    # print(tup3)
    # 删除元组
    # del tup2
    # print(tup2)
    对比两个元组:
    import operator
    tup=('192.168.35.130','lzc','root',123456,'mysql')
    tup2=(1,2,3,4,5,)
    print(operator.eq(tup,tup2))
     
    ------------------------------------------
    # 计算元素个数
     
    # 返回元素中的最小值、最大值
     
    # 列表转换为元组
     
    # 查:
    # 取元组的的下标为2的值
    # 去元组前面3个元素的值
     
    # 链接两个元组
     
    # 删除元组
     
    #对比两个元组:
     
    ******************************************************
    集合:
    集合:集合是一种数据类型,一个类似列表的东西
    与列表相比:它的特点是无序的,不重复 也就是说集合中是没有重复的数据
     
    set拥有类似dict的特点:可以用{}花括号来定义;其中的元素没有序列,也就是是非序列类型的数据;而且,set中的元素不可重复,这就类似dict的键.
    set也有继承了一点list的特点:如可以原处修改(事实上是一种类别的set可以原处修改,另外一种不可以)
     
    定义集合:
    定义一个空集合
    s=set()
    print(type(s))
     
    1、通过强制类型转换
    nums=[1,1,2,3,34,2]
    num_set=set(nums)
     
    2、直接定义集合
    num_set1={1,2,3,4,5,6} #与定义字典的区别是 字典中含有冒号 集合没有
     
    set1.add(2222) #添加元素
    print('添加元素:',set1)
    set1.update([111,222,333]) #把list里面的东西更新进去 如果是字符串 会一个一个得添加进去
     
    s1={1,2,4,6,7,8,9,90}
    s1.update('ljk') #需要先update 然后才能打印
    print(s1)
    结果:
    {1, 2, 4, 6, 7, 8, 9, 11, 'j', 'k', 22, 'l', 90}
    #update 字符串是以元素下标为个体添加进去,如'abc'那就是将a,b,c分别添加进去
    # update 列表也是以元素下标为个体添加进去 ['abc','lkj'] 将'abc'和'lkj添加进去
     
    print(set1)
    set1.remove(111) #删除元素,如果元素不存在就会报错
    print('删除元素,如果元素不存在就会报错:',set1)
    set1.pop() #删除一个随记的元素,并返回删除的元素
    print('删除一个随记的元素,并返回删除的元素:',set1)
    set1.discard('ddd') #删除的元素存在,删除,不存在不做任何处理
    print('删除的元素存在,删除,不存在不做任何处理:',set1)
    print(set1.clear()) 将set全部清空
     
    set1={1,2,3,457,78}
    set2={1,2,4,6,78}
    set3={1,2}
    print('交集:',set1.intersection(set2))
    print('并集:',set1.union(set2))
    print('并集2:',set1 | set2)
    print('差集:',set1.difference(set2))
    print('差集2:',set1 - set2)
     
    print('判断set3是不是set2的子集:',set3.issubset(set2))
    print('判断set2是不是set3的子集:',set2.issuperset(set3))
    print('判断是否有交集:',set1.isdisjoint(set3))
    print('^ 除相同元素以外的元素',set1^set2)
     
    -------------------------------------------------------------------------------------------------------
    # 创建一个空集合
    # s=set()
    # print(type(s))
    # 定义一个集合
    # s={1,2,3,4,}
    # print(type(s))
    # s1={1,2,4,6,7,8,9,90}
    # s2={2,3,5,4,6,'f'}
    # # 添加元素
    # s1.add('kskksks')
    # print(s1)
    #添加元素update
    # s1.update([11,22])
    # s1.update('ljk')
    # print(s1)
    # 字符串是以元素下标为个体添加进去,如'abc'那就是将a,b,c分别添加进去
    # 列表也是以元素下标为个体添加进去 ['abc','lkj'] 将'abc'和'lkj添加进去
    #删除元素
    # s1.remove(90)
    # print(s1)
    # #随机的删除一个元素
    # s1.pop()
    # print(s1)
    #删除的元素村存在就删除,不存在就不删除
    # s1.discard(190)
    # print(s1)
    #删除整个集合
    # print(set1.clear())
    #list转换为集合
    # l=[1,2,3,4,5,7]
    # s1=set(l)
    # print(type(s1))
    #取两个集合间的交集
    # s1={1,2,4,6,7,8,9,90}
    # s2={2,3,5,4,6,'f'}
    # print(s1.intersection(s2))
    # 取两个集合的并集(两种方式)
    # s1={1,2,3,5}
    # s2={4,3,6,2}
    # print(s1.union(s2))
    # print(s1|s2)
    #取差集 (两种方式)
    # s1={1,2,3,5}
    # s2={4,3,6,2}
    # print(s1.difference(s2))
    # print(s1-s2)
     
    set1={1,2,3}
    set2={1,2,3,4,6,7}
    # 判断两个集合是否有交集
    # print(set1.isdisjoint(set2))
    #判断set1是不是set2的子集
    # print(set1.issubset(set2))
    #判断set1是不是set2的子集
    # print(set1.issuperset(set2))
    # '判断是否有交集
    # print(set1.isdisjoint(set2))
    # 除相同元素以外的元素
    # print(set1^set2)
     
     
     
     
     
     
     
     
  • 相关阅读:
    PHP中获取当前页面的URL信息
    $_POST和$GLOBALS['HTTP_RAW_POST_DATA'] 的区别
    curl模拟ip和来源进行网站采集的实现方法
    mysql修改root密码的几种方法
    微信小程序实现支付功能
    git获取远程服务器的指定分支
    mysql函数技巧整理
    sql 查询目标数据库中所有的表以其关键信息
    SET NOCOUNT ON
    C# CultureInfo中常用的InvariantCulture
  • 原文地址:https://www.cnblogs.com/zunchang/p/7638138.html
Copyright © 2020-2023  润新知