返回

Python__16--集合

发布时间:2023-01-03 12:19:08 286

Untitled.png (2000×964) (amazonaws.com)

1 集合

一句话,没有value的字典,无序可变序列。

1.1 集合的创建

1.1.1 使用{}

s={2,3,4,5,5,6,7,7}
#输出为{2,3,4,5,6,7} 集合中元素不允许重复

1.1.2 使用set()

测试代码:

s={2,3,4,5,5,6,7,7}
print(s)
s=set(range(6))
print(s)
s=set([3,4,5,56])
print(s)
s=set((3,4,5,56))
print(s)
s=set('Python')    #将字符串逐个字符拆开,产生无序集合
print(s)
s=set({1,124,5,4})
print(s)

测试结果:

tmp3C83.png (258×449) (amazonaws.com)

1.2 集合的相关操作

1.2.1 是否存在某元素

s={10,20,30,405,60}
print(10 in s)
print(10 not in s)

1.2.2 加元素

  1. 加一个

    s.add(80)

  2. 至少加一个

    s={10,20,30,405,60}
    s.update({200,400,800})
    s.update([56,57,57])
    s.update((78,74,70))
    #各个元素均添加到随机位置
    

1.2.3 删元素

  1. s.remove(10)

    若不存在,会报错KeyError

  2. s.discard(500)

    若不存在,不会报错

  3. s.pop

    随机删除一个,不能指定参数

  4. s.clear

    清空集合中的元素,输出为空set()

1.3 集合的关系

  1. ==、!=

    #元素相同,就相等
    s={1,2,3,4}
    s1={4,3,2,1}
    s==s1
    
  2. a是否是b的子集

    print(s2.issubset(s1))
    #是子集则True
    
  3. a是否是b的超集(a是否包含b)

    print(s2.issuperset(s1))
    #是超集则True
    
  4. 两个集合是否没交

    #有交集False,没交集True
    print(s2.isdisjoint(s1))
    #有交集False,没交集True
    

1.4 集合的数学操作

  1. 交集

    print(s1.intersection(s2))
    print(s1  &  s2)
    
  2. 并集

    print(s1.union(s2))
    print(s1 | s2)
    
  3. 差集

    s1={1,2,3,4}
    s2={2,3,4,5}
    print(s1.difference(s2))  #或者print(s1-s2)
    #{1}
    
  4. 对称差集

    print(s1.symmetric_difference(s2))
    print(s1^s2)
    #{1,5}
    

1.5 集合生成式

测试代码:

s={i for i in range(10)}
#结果是无序的
s={i*i  for  i  in  range(10)}
#i*i的位置是输出每个元素的表达式
print(s)

测试结果:

tmpD494.png (392×95) (amazonaws.com)

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
pipenv安装报错 2023-01-03 11:52:35