创建集合
set(iterable)
集合中的元素不能为 list、dict、set,使用 {} 创建集合
集合中每个元素只会出现一次,且集合中的元素无序
>>> S1 = {1,2,3,4,5}
>>> S1
{1, 2, 3, 4, 5}
>>> S2 = set()
>>> S2
set()
>>> S3 = set([1,2,3,4,5])
>>> S3
{1, 2, 3, 4, 5}
集合中的常用方法
add
add(element)
用于向集合中添加元素,若该元素已存在则添加无效
>>> S1 = {1,2,3,4,1,2,3,4}
>>> S1
{1, 2, 3, 4}
>>> S1.add(5)
>>> S1.add((1,2,3))
>>> S1
{1, 2, 3, 4, 5, (1, 2, 3)}
>>> S1.add(5)
>>> S1
{1, 2, 3, 4, 5, (1, 2, 3)}
union、difference
union(set1, set2, ...)
用于得到一个新的集合,新的集合为原集合和参数列表中集合的并集
difference(set1, set2, ...)
用于得到一个新的集合,新集合中的元素在原集合中而不在参数列表中的集合中
>>> S1 = {1,2,3,4}
>>> S2 = {3,5,6,7}
>>> S3 = {4,7,8,9}
>>> S1.union(S2, S3)
{1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> S1.difference(S2, S3)
{1, 2}
pop、remove、discard、clear、del
pop()
用于随机弹出集合中的一个元素
remove(element)
用于删除集合中的元素
若该元素不存在,则抛出KeyError
discard(element)
用于删除集合中的元素
若该元素不存在,则什么都不做
clear()
用于清空集合
del方法用于删除集合
>>> S1 = {1,2,3,4,5}
>>> S1.remove(1)
>>> S1
{2, 3, 4, 5}
>>> S1.remove(6)
KeyError: 6
>>> S1.discard()
>>> S1.clear()
>>> S1
set()
>>> del S1
>>> S1
NameError: name 'S1' is not defined
copy
copy()
用于得到一个与原集合元素一样的新集合,为深拷贝
>>> S1 = {1, 2, 3}
>>> S2 = S1.copy()
>>> S1 == S2
True
>>> S1 is S2
False
不可变集合
frozenset(iterable)
用于声明不可变集合,声明后集合不可修改
>>> S1 = frozenset([1,2,3,4,5])
>>> S1
frozenset({1, 2, 3, 4, 5})