创建方式
直接使用{}
与字典类似
区别在于集合没有key
与元组一样元素不能重复
集合中元素无序
s = {‘python’, 'hello', 90}
使用内置函数 set()
s = set(range(6))
print(s)
print(set((3, 4, 53, 56)))
print(set(''print))
print(set({124, 3, 4, 4, 5}))
s = set() # 空集合
print(s)
输出
{0, 1, 2, 3, 4, 5}
{56, 3, 4, 53}
{‘i’, ‘t’, ‘p’, ‘r’, ‘n’}
{5, 3, 124, 4}
set()
集合元素的新增
调用add(),一次添加一个元素
调用update() 至少增加一个元素
s.add(100) # 一次新增一个
s.update([200, 20, 24]) # 以列表形式新增多个
s.update((34, 45, 56)) # 以元组的形式新增多个
集合元素的删除
调用remove()的方法, 一次删除一个指定元素,若指定元素不存在则抛出KeyError
调用didcard()方法,一次删除一个指定元素,若指定元素不存在则抛出KeyError
调用pop()的方法一次删除一个任意元素 , 不可指定元素
调用clear()方法,清空集合
集合之间的关系
两个集合中若元素完全相同,则两个集合相等,不用考虑顺序
子集与超集
交集
s = set(ramge(6))
s1 = {0, 2, 4}
s2 = {1, 3,5 ,7}
print(s1.issubset(s)) # 子集
print(s.issuperset(s1)) #超集
print(s.isdisjoint(s2)) # 交集 有交集为False
输出交集或并集元素
# 输出交集
print(s.intersection(s2))
print(s & s2)
# 输出并集
print(s.union(s2))
print(s | s2)
差集
print(s.difference(s2))
print(s - s2)
print(s2.difference(s))
print(s2 - s)
输出
{0, 2, 4}
{0, 2, 4}
{7}
{7}
对称差集
print(s.symmetric_difference(s2))
print(s^ s2)
输出
{0, 2, 4, 7}
{0, 2, 4, 7}
集合生成公式
lis = i * I for i in range(6)
s = {i * I fpr i in range(6)}