集合是Python2.4开始引入的一种新的类型,是唯一的、不可变的对象的一个无序集合。这些对象支持与数学集合理论相对应的操作。根据定义,一个项在集合中只能出现一次,不管将它添加多少次。同样,集合有着广泛的应用,尤其是在涉及数字和数据库的工作中。
常用表达式:
>>> x = set("abcde") # 集合定义
>>> y = set("bdxyz")
>>> x
{'a', 'c', 'd', 'b', 'e'}
>>> "e" in x # 成员关系判断
True
>>> x - y # 差集
{'c', 'a', 'e'}
>>> x | y # 并集
{'y', 'a', 'x', 'z', 'c', 'b', 'd', 'e'}
>>> x & y # 交集
{'b', 'd'}
>>> x ^ y # 对称差集,排除同时出现在x,y中的项'b','d'
{'y', 'a', 'x', 'z', 'c', 'e'}
>>> x > y, x < y
(False, False)
>>>
常用函数:
>>> z = x.intersection(y) # 集合的交集,类似于 X & Y
>>> z
{'b', 'd'}
>>> z.add("SPAM") # 集合中增加新元素
>>> z
{'SPAM', 'b', 'd'}
>>> z.update(set(["X", "Y"])) # 集合更新
>>> z
{'Y', 'SPAM', 'd', 'X', 'b'}
>>> z.remove("b") # 集合中移除元素
>>> z
{'Y', 'SPAM', 'd', 'X'}
>>> S = set([1, 2, 3])
>>> S
{1, 2, 3}
>>> S.union([3, 4]) # 集合中合并操作
{1, 2, 3, 4}
>>> S.intersection((1, 3, 5)) # 交集
{1, 3}
>>> S.issubset(range(-5, 5)) # 判断一个集合是不是另外一个集合的子集
True
>>> x
{'a', 'c', 'd', 'b', 'e'}
>>> len(x) # 求集合的长度
5
>>> S
{1, 2, 3}
>>> L = set(range(-5, 5))
>>> L.issuperset(S) # 判断某个集合是否为另外一个集合的父集合
True
>>> S
{1, 2, 3}
>>> S.pop() # 随机删除一个数字
1
>>> z
{'Y', 'SPAM', 'd', 'X'}
>>> z.remove("d") # 移除数据,区别remove,存在则移,不存在不移,也不报错!
>>> z
{'Y', 'SPAM', 'X'}
>>> z
{'Y', 'SPAM', 'X'}
>>> z.clear() # 清空集合中的元素
>>> z
set()
集合遍历
>>> for item in set("ABCD"):
... print(item * 4)
AAAA
BBBB
CCCC
DDDD
>>>