set_python
1.集合的创建
s = {2, 3, 4, 5, 6, 6, 7, 7}
print(s)
s1 = set(range(6))
print(s)
s2 = set([2, 3, 4, 5, 6, 6, 7, 7])
print(s2)
s3 = set((1, 2, 4, 5, 65))
print(s3)
s4 = set('python')
print(s4)
s5 = set({12, 4, 34, 55, 66, 4, 66})
print(s5)
s6 = {}
print(type(s6))
s7 = set()
print(type(s7))
2.集合的相关操作
s = {10, 20, 30, 40, 60, 20}
print(10 in s)
print(10 not in s)
print(100 in s)
方法 | 含义 |
---|
add() | 一次至少添加一个元素 |
update() | 至少添加一个元素 |
s = {10, 20, 20}
s.add(80)
print(s)
s.update({100, 110})
print(s)
s.update([200, 210])
print(s)
s.update((300, 310))
print(s)
方法 | 含义 |
---|
remove() | 一次删除一个指定的元素。若指定元素不存在抛出KeyError |
discard() | 一次删除一个指定元素,若指定元素不存在不抛出异常 |
pop() | 一次只删除一个任意元素 |
clear() | 清空集合 |
s = {200, 10, 80, 210, 20, 100, 300, 110, 310}
s.remove(100)
print(s)
'''
s.remove(500)
print(s) # 报错
'''
s.discard(200)
print(s)
s.discard(500)
print(s)
s.pop()
print(s)
s.clear()
print(s)
3.集合间的关系
集合关系 | 使用函数 |
---|
A与B是否相等 | A == B |
A是否是B的子集 | A.issubset(B) |
A是否是B的超集 | A.issuperset(B) |
A与B是否不存在交集 | A.isdisjoint(B) |
s = {10, 20, 30, 40}
s2 = {30, 40, 20, 10}
print(s == s2)
print(s != s2)
s1 = {10, 20, 30, 40, 50, 60}
s2 = {10, 20, 30, 40}
s3 = {10, 20, 90}
print(s2.issubset(s1))
print(s3.issubset(s1))
print(s1.issuperset(s2))
print(s1.issuperset(s3))
print(s2.isdisjoint(s3))
s4 = {100, 200, 300}
print(s2.isdisjoint(s4))
4.集合的数学操作
方法 | 含义 |
---|
A.intersection(A) 或者 A & B | A与B的交集 |
A.union(B) 或者 A | B | A与B的并集 |
A.difference(B) 或者 A - B | A与B的差集 |
A.symmetric_difference(B) 或者 A ^ B | A与B的对称差集 |
| |
s1 = {10, 20, 30, 40}
s2 = {20, 30, 40, 50, 60}
print(s1.intersection(s2))
print(s1 & s2)
print(s1.union(s2))
print(s1 | s2)
print(s1.difference(s2))
print(s2 - s1)
print(s1.symmetric_difference(s2))
print(s1 ^ s2)
print(s1)
print(s2)
5.集合生成式
s = { i * i for i in range(10)}
print(s)