1-03-1 Python 集合

159 阅读1分钟

集合 (set) 介绍

Python也包含有集合类型。集合是由不重复元素组成的无序的集。它的基本用法包括成员检测和消除重复元素。集合对象也支持像联合,交集,差集,对称差集等数学运算。花括号或 set() 函数可以用来创建集合。注意:要创建一个空集合你只能用 set() 而不能用 {},因为后者是创建一个空字典。

集合的操作主要有下列几种:

  • 并集:两个集合的并,返回包含两个集合所有元素的集合(去除重复)。
  • 交集:两个集合的交,返回包含两个集合共有元素的集合。
  • 差集:a, b 两个集合中,a 和 b 的差集,返回只在 a 不在 b 的元素组成的集合。
  • 对称差集:a, b 两个集合中, a 或在 b 中,但是不同时在 a 和 b 中的元素组成的集合。
  • 包含关系:a, b 两个集合中,要判断 a, b 两个集合的包含关系。
>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket)                      # 消除重复元素 'orange', 'apple'
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket                 # 判断元素内容
True
>>> 'crabgrass' in basket
False
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a                                  # 不重复元素组成
{'a', 'r', 'b', 'c', 'd'}
>>> b
{'c', 'm', 'z', 'l', 'a'}
>>> a - b                              # a, b 差集
>>> a.difference(b)
{'r', 'd', 'b'}
>>> a | b                              # a, b 联合
>>> a.union(b)
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b                              # a, b 交集
>>> a.intersection(b)
{'a', 'c'}
>>> a ^ b                              # a, b 对称差集,只在 a 集合或是 b 集合的字元
>>> a.symmetric_difference(b)
{'r', 'd', 'b', 'm', 'z', 'l'}
>>> a = set('abcde')
>>> b = set('abc')
>>> b <= a                             # 要判断 b 是不是 a 的子集
>>> b.issubset(a)
>>> a >= b                             # 要判断 a 是不是 b 的父集