Python__16--集合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python__16--集合相关的知识,希望对你有一定的参考价值。

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)

测试结果:

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)

测试结果:

以上是关于Python__16--集合的主要内容,如果未能解决你的问题,请参考以下文章

python16_day03集合函数递归内置函数

Python数据结构之字典

Python数据结构之字典

Python数据结构之字典

大数据技术之_16_Scala学习_08_数据结构(下)-集合操作+模式匹配

Learning-Python16:模块的导入使用