• 集合及其运用


    #集合:可变的数据类型,由不可变的数据类型组成(int,str ,tuple,Bool),无序,不重复
    #集合用{}表示,因在字典中用{}表示空字典,所以集合的空集用set(),表示。
    
    
    '''
    #如何把一个列表,变为一个集合
    li=[1,2,3,3,4,4,5,5,6,6,6]
    set1=set(li)
    print(set1)#{1, 2, 3, 4, 5, 6}
    #那如何将一个列表转换成集合呢????
    set2={1,2,3,4,5}
    lis=list(set2)
    print(lis)#[1, 2, 3, 4, 5]
    
    
    
    #集合的增:add 随机加入 update,也是随机加入,
    #不过他把加入的字符串拆解成一个个字符,再加入到集合中
    set1={1,"hello",(1,2),False}#为什么把布尔值写成true在运行时就会消失呢???
    set2=set1.add("Linda")#随机加入 {(1, 2), 1, False, 'Linda', 'hello'}
    print(set1)
    set3=set1.update("LOVE")
    print(set1)#随机加入  {(1, 2), 1, False, 'V', 'E', 'L', 'hello', 'Linda', 'O'}
    li=["hello"]
    
    #update与列表中的extend类似,都是把加入的字符串拆解成一个个字符,但唯一不同的是
    #update 在集合中是随机的,而extend在列表中不是随机的
    a=li.extend("Linda")
    print(li)
    
    
    
    
    #集合的删pop随机删除,但是似乎随机删除的那一个一旦确定,每次删除的都是那一个
    #remove 按元素去删
    #clear 把集合清空为空集合 set()
    #del 把集合直接删除,
    
    set1={1,"hello",False,4,5,6}
    set2=set1.pop()
    print(set1) #{1, 4, 5, 'hello', 6}
    set3=set1.remove(1)
    print(set1) #{4, 5, 6, 'hello'}
    set4=set1.clear()
    print(set1) #set()
    
    set6={1,"hello",False,4,5,6}
    del set6 #删除整个字典,相当于这个字典没出现过
    print(set6)#报错,因为set1被删除了,所以不存在了,错误原因就是set6没有命名
    
    
    #集合的查:使用for循环去查询集合里面的元素
    set1={1,"hello",False,4,5,6}
    for i in set1:
        print(i)#False 1 4 5 6 hello
    
    
    #集合的交集: set1 &set2 求两个集合都有的元素
    set1={1,2,3,4,5}
    set2={4,5,6}
    set3=set1 &set2
    print(set3)#{4,5}  这两个的结果都是相同的 intersection 是交叉路口,交集的意思
    print(set1.intersection(set2))#{4,5}  set1与set2的交集,或set2与set1的交集
    print(set2.intersection(set1))#{4,5}  表达的意思都是一样的
    
    
    
    
    #集合的并集
    set1={1,2,3,4,5}
    set2={4,5,6}
    set3=set1 | set2 # | 相当于Linux中的管道连接符,把set1,set2的元素连接起来
    print(set3)
    print(set2.union(set1))#union 是联合的意思
    print(set1.union(set2))#{1, 2, 3, 4, 5, 6}
    
    
    
    
    #反交集:除了两个集合共有的元素外,剩下的元素
    set1={1,2,3,4,5}
    set2={4,5,6}
    print(set1 ^ set2) #{1, 2, 3, 6}
    print(set1.symmetric_difference (set2)) #symmetric 对称的 difference 不同,把对称的去掉,余下的
    
    
    
    
    #差集:set1-set2 表示的意思是set1独有的元素,而set2没有的元素
    set1={1,2,3,4,5}
    set2={4,5,6}
    print(set1-set2)#{1, 2, 3}
    print(set1.difference(set2))#表示的是set1不同于set2的元素 {1, 2, 3}
    print(set2-set1)#{6}
    
    
    
    #子集与超集返回的都是Bool值
    #子集:若set1中的所有元素都在set2中,则set1为set2的子集,而set2为set1的超级
    set1={1,2,3,4,5}
    set2={1,2,3,4,5,6}
    print(set1<set2)#True
    print(set1.issubset(set2))#issubset 子集 判断一个集合的所有元素是否都包含于另一个集合
    print(set2<set1)#False
    
    
    
    
    #超集:一个集合包含另一个集合的所有元素,那么这个集合就叫做超集
    set1={1,2,3,4,5}
    set2={1,2,3,4,5,6}
    print(set2>set1)#True
    print(set2.issuperset(set1))#issuperset 父集 判断是否是父集 
    
    '''
    #把可变的集合变为不可变使用 set 可变---->frozenset----不可变
    s={"HELLO","Linda"}
    print(s,type(s))#{'Linda', 'HELLO'} <class 'set'>
    s1=frozenset(s)
    s2=frozenset("HAHA")
    print(s1,type(s1))#frozenset({'Linda', 'HELLO'}) <class 'frozenset'>
    print(s2,type(s2))#frozenset({'H', 'A'}) <class 'frozenset'>
    

      

  • 相关阅读:
    有价值的终会被人发现和承认
    Sql中存在斜杠“/”怎么办?
    JSONObject和JSONArray(json-lib-2.4)的基本用法
    如何设定linux系统时间
    动态创建的文本框想要加上jQuery的datepicker功能变成日期选择控件该怎么办?
    如果$.ajax函数迟迟得不到响应,那么最有可能出错的地方是请求参数写错了
    Notepad2替代系统自带的记事本Notepad
    css属性与js中style对象的属性对应表
    day02_js学习笔记_01_js的简介、js的基本语法
    Eclipse/MyEclipse的快捷键以及文档注释、多行注释的快捷键
  • 原文地址:https://www.cnblogs.com/GZ1215-228513-Chichy/p/11334679.html
Copyright © 2020-2023  润新知