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'} >>>