Python 集合

集合是一种鲁棒性(健壮性)很好的数据结构,它与数学上的集合概念非常相似。Python内置集合类型有两种。

set():一种可变的、无序的、有限的集合,其元素是唯一的、不可变的(可哈希的)对象。

frozenset():一种不可变的、可哈希的、无序的集合,其元素是唯一的、不可变的(可哈希的)对象。

由于frozenset()具有不可变性,它可以作为字典的键,也可以作为其他set()和frozenset()的元素。在一个set()或者frozenset()中不能包含另一个普通的可变set(),因为这会引发TypeError:

>>> set([frozenset([1,2,3]),frozenset([2,2,3])])
{frozenset({2, 3}), frozenset({1, 2, 3})}
>>> set([set([1,2,3]),set([2,2,3])])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'set'

  

 

 

 

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

以下实例展示了 set 的使用方法:

>>> x = set('lcccg')
>>> y = set('0bbug')
>>> x, y
({'c', 'l', 'g'}, {'u', 'b', '0', 'g'})
>>> x & y  # 交集
{'g'}
>>> x | y  # 并集
{'c', 'b', 'u', 'l', '0', 'g'}
>>> x - y  # 差集
{'c', 'l'}
>>>

  

posted @ 2018-05-08 10:14  0bug  阅读(226)  评论(0编辑  收藏  举报