欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

常用数据结构--集合

程序员文章站 2022-04-02 10:53:16
集合是一组用 “{” 和 “}” 括起来的无序不重复元素,元素之间用逗号分隔,元素...

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

集合的创建

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

相关标签: 集合 python