集合是一组用 “{” 和 “}” 括起来的无序不重复元素,元素之间用逗号分隔。

集合的创建

1.用大括号将多个元素括起来,元素间用逗号分隔

>>> s = { 'a','b','c','d'}
>>> s
{ 'a', 'b', 'c', 'd'}

2.用函数 set() ,可将字符串、列表、元组等类型的数据转换为集合类型

>>> s = set(['a','b','c','d'])
>>> s
{ 'a', 'b', 'c', 'd'}

>>> type(s)
<class 'set'>

>>> a = set()
>>> a
set()
>>> type(a)
<class 'set'>

注:空集合只能用 set() 来创建,{} 用于表示空字典

集合的运算

1.len() 返回集合中元素的个数

>>> s = { 'a','b','c','d'}
>>> len(s)
4

2. in 判断元素是否存在于集合之中,结果返回布尔值

>>> s = { 'a','b','c','d'}
>>> 'b' in s
True
>>> 1 in s
False

3.并集、交集

并集:创建新集合,包含两个集合中的所有元素
交集:创建新集合,包含两个集合中的公共部分

>>> s1 = { 'a','b','c','d'}
>>> s2 = { 'd','e','f'}
>>> s1 | s2  #并集
{ 'a', 'f', 'e', 'd', 'b', 'c'}
>>> s1 & s2  #交集
{ 'd'}

4.差集

出现在集合A但不出现在集合B中的元素所构成的集合

>>> s1 = { 'a','b','c','d'}
>>> s2 = { 'd','e','f'}
>>> s1-s2
{ 'a', 'b', 'c'}
>>> s2-s1
{ 'f', 'e'}

5.对称差

返回两个集合中不重叠的元素所构成的集合

>>> s1 = { 'a','b','c','d'}
>>> s2 = { 'd','e','f'}
>>> s1 ^ s2
{ 'b', 'a', 'f', 'e', 'c'}

6.子集和超集

子集:集合A中的元素都属于集合B,A是B的子集
超集:集合A是B的子集,B是A的超集

  • A <= B 检测A是否是B的子集
  • A < B 检测A是否是B的真子集
  • A >= B 检测A是否是B的超集
  • A > B 检测A是否是B的真超集
  • A |= B 将B的元素并入A中
>>> s1 = { 'a', 'f', 'e', 'd', 'b', 'c'}
>>> s2 = { 'a','b','c'}
>>> s2<s1
True
>>> s2>s1
False
>>> s2|=s1
>>> s1
{ 'd', 'b', 'a', 'f', 'e', 'c'}

集合的方法

python中以面向对象方式实现集合类型的运算

1.union()、intersection()

union() 方法相当于并集运算,intersection() 方法相当于交集运算

>>> s1 = { 'a','b','c','d'}
>>> s2 = { 'd','e','f'}
>>> s1.union(s2)
{ 'a', 'f', 'e', 'd', 'b', 'c'}
>>> s1.intersection(s2)
{ 'd'}

2.update() 相当于合并运算

>>> s1 = { 'a','b','c','d'}
>>> s2 = { 'd','e','f'}
>>> s1.update(s2)
>>> s1
{ 'a', 'f', 'e', 'd', 'b', 'c'}

3.difference() 相当于差集运算

>>> s1 = { 'a','b','c','d'}
>>> s2 = { 'd','e','f'}
>>> s1.difference(s2)
{ 'a', 'b', 'c'}
>>> s2.difference(s1)
{ 'f', 'e'}

4.symmetric_difference() 相当于对称差运算

>>> s1 = { 'a','b','c','d'}
>>> s2 = { 'd','e','f'}
>>> s1.symmetric_difference(s2)
{ 'b', 'a', 'f', 'e', 'c'}

5.issubset() 用于判断是否子集, issuperset() 用于判断是否超集

>>> s1 = { 'a','b','c','d','e','f'}
>>> s2 = { 'd','e','f'}
>>> s1.issubset(s2)
False
>>> s2.issubset(s1)
True
>>> s1.issuperset(s2)
True
>>> s2.issuperset(s1)
False

6.add() 向集合中添加元素

>>> s = { 'a','b','c','d'}
>>>> s.add('e')
>>> s
{ 'd', 'b', 'a', 'e', 'c'}

7.remove() 从集合中删除元素

>>> s = { 'a','b','c','d','e','f'}
>>>> s.remove('f')
>>> s
{ 'd', 'b', 'a', 'e', 'c'}

>>> s.remove(1)
Traceback (most recent call last):
  File "<pyshell#58>", line 1, in <module>
    s.remove(1)
KeyError: 1

注:集合中没有该元素则报错

8.discard() 从集合中删除元素

>>> s = { 'a','b','c','d','e','f'}
>>> s.discard('f')
>>> s
{ 'd', 'b', 'a', 'e', 'c'}
>>> s.discard(1)
>>> 

注:集合中没有该元素也不报错

本文地址:https://blog.csdn.net/forever_728/article/details/110840700