美文网首页
第007篇:集合

第007篇:集合

作者: yydafx | 来源:发表于2019-11-12 18:00 被阅读0次

    1、什么是集合(set)

    • 容器型数据类型,将{}作为容器标志,里面多个元素用逗号隔开;{元素1,元素2,元素3,...}
    • 可变的(支持增删改)、无序(不支持下标操作)
    • 集合中的元素:不可变,唯一的(自带去重)

    1.1、空集合

    • 注意:{}表示空字典
    a = {}
    print(type(a))  # <class 'dict'>
    
    set1 = set()
    print(type(set1))  # <class 'set'>
    

    2、集合中的元素

    set1 = {1, 2, 'aa', (10,)}
    print(set1)  # {'aa', 1, 2, (10,)}
    
    # 证明集合元素不可变(传入可变元素会报错)
    # set1 = {1,2,'aa',(10,),[12,2]}
    # print(set1)     # TypeError: unhashable type: 'list'
    
    
    # 集合中的元素是唯一的(自带去重功能)
    set1 = {1, 3, 4, 2, 4, 1, 6, 7}
    print(set1)  # {1, 2, 3, 4, 6, 7}
    

    3、增删查

    3.1、查
    • 遍历集合
    set1 = {3, 5, 2, 5, 23, 43, 1, 65, 13, 3, 2, 1, 12}
    for x in set1:
        print(x, end=', ')  # 1, 2, 3, 65, 5, 43, 12, 13, 23,
    print()
    
    3.2、增
    • 添加单个元素:集合.add() -- 在集合中添加指定元素
    set1 = {3, 5, 2, 5, 23}
    set1.add(10)
    print(set1) # 1, 2, 3, 65, 5, 43, 12, 13, 23,
    
    • 集合.update(序列) -- 将序列中所有的元素添加到集合中
    set1 = {3, 5, 2, 5, 23}
    set1.update('abd')
    print(set1)     # {2, 3, 5, 'a', 23, 'b', 'd'}
    
    3.3、删
    • 集合.remove(元素) -- 删除集合中指定元素,元素不存在会报错
    • 集合.discard(元素) -- 删除集合中指定元素,元素不存在不会报错
    set1 = {3, 5, 2, 5, 23}
    set1.remove(2)
    print(set1)  # {3, 5, 23}
    
    
    set1 = {3, 5, 2, 5, 23}
    set1.discard(23)
    print(set1)     # {2, 3, 5}
    

    3.4、改

     傻孩子,既然选择了集合,就别想着改了

    • 改只有先删除,再添加,所以删除完全没必要的。

    4、相关操作

     in/not in

    set1 = {3, 5, 2, 5, 23}
    print(2 in set1)    # True
    

    5、集合的数学运算

    • 数学的集合运算:并集(|),交集(&),差集(-),对称差集(^),包含关系(>,<)
      1)并集: 集合1|集合2 --> 将两个集合合并在一起产生一个新的集合
    set1 = {1, 2, 3, 4, 5}
    set2 = {4, 5, 6, 7, 8}
    print(set1 | set2)  # {1, 2, 3, 4, 5, 6, 7, 8}
    

    2)交集: 集合1&集合2 --> 获取两个集合的公共部分产生一个新的集合

    set1 = {1, 2, 3, 4, 5}
    set2 = {4, 5, 6, 7, 8}
    print(set1 & set2)  # {4, 5}
    

    3)差集: 集合1-集合2 --> 集合1减去集合2剩下的部分产生一个新的集合

    set1 = {1, 2, 3, 4, 5}
    set2 = {4, 5, 6, 7, 8}
    print(set1 - set2)  # {1, 2, 3}
    

    4)对称差集: 集合1^集合2 --> 获取集合1和集合2合并后去掉公共部分剩下的部分

    set1 = {1, 2, 3, 4, 5}
    set2 = {4, 5, 6, 7, 8}
    print(set1 ^ set2)  # {1, 2, 3, 6, 7, 8}
    

    5)包含关系: 集合1>集合2 --> 判断集合1中是否包含集合2
     包含关系: 集合2>集合1 --> 判断集合2中是否包含集合1

    set1 = {1, 2, 3, 4, 5, 6, 7}
    set2 = {5, 6, 7}
    print(set1 > set2)  # True
    print(set1 < set2)  # False
    

    相关文章

      网友评论

          本文标题:第007篇:集合

          本文链接:https://www.haomeiwen.com/subject/uuvqictx.html