1,集合:
1.1,集合與字典同樣也是用{},可是僅僅是dic = {}建立是字典
print(type({})) #結果:<class 'dict'>
set1 = {1, 2, 3}
print(type(set1)) #結果:<class 'set'>
1.2可變的數據類型,可是它裏面的元素必須是不可變的數據類型。
1.3集合元素無序,不重複。
#如下錯誤的寫法list是可變的數據類型
set1 = {1, 2, [4, 5], {'name': 'py'}, (3, 4)}
#TypeError: unhashable type: 'list'
2,建立集合
set1 = set()
set2 = set({1, 2, 3})
print(type(set1)) #結果:<class 'set'>
print(type(set2)) #結果:<class 'set'>
set3 = {1 ,2, 3}
print(type(set3)) #結果:<class 'set'>
3,增長
3.1,add() 增長,位置隨機,添加已有的無效
set1 = {1, 2, 3, '女神'}
set1.add('女神')
print(set1) #結果:{1, 2, 3, '女神'}
3.2,update() 迭代(分解)隨機位置增長,添加已有的無效
set1 = {1, 2, 3, '女'}
set1.update('女神')
print(set1) #結果:{'女', 1, 2, 3, '神'}
4,刪除
4.1,pop() 隨機刪除並返回值,set爲空則報錯
set1 = {1, 2, 3, '女'}
print(set1.pop())
print(set1)
4.2,remove() 按元素刪除,元素不存在則報錯
set1 = {1, 2, 3, '女'}
set1.remove('女')
print(set1)
5,清空,刪除集合
set1 = {1, 2, 3, '女'}
set1.clear() #清空set
print(set1) #結果:set()
del set1 #刪除set
6,查
集合是無序的,每次輸出順序不同
set1 = {1, 2, 3, '女'}
for i in set1:
print(i,end=' ') #結果:女 1 2 3
7,交集
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
set3 = set1 & set2
print(set3) #>>>{4, 5}
print(set1.intersection(set2)) #>>>{4, 5}
8,並集
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 | set2) #>>>{1, 2, 3, 4, 5, 6, 7, 8}
print(set1.union(set2)) #>>>{1, 2, 3, 4, 5, 6, 7, 8}
9,反交集
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 ^ set2) #>>>{1, 2, 3, 6, 7, 8}
print(set1.symmetric_difference(set2)) #>>>{1, 2, 3, 6, 7, 8}
10,差集
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 - set2) #>>>{1, 2, 3} #set1獨有的
print(set1.difference(set2)) #>>>{1, 2, 3}
11,子集
set1 = {1, 2, 3}
set2 = {1, 2, 3, 7, 8}
print(set1 < set2) #>>>True #set1是set2的子集
print(set1.issubset(set2)) #>>>True
12,超集
set1 = {1, 2, 3}
set2 = {1, 2, 3, 7, 8}
print(set2 > set1) #>>>True #set2是set1的子集
print(set2.issuperset(set1)) #>>>True
13,經過集合完成列表去重
lis = [1, 3, 4, 3, 5, 5, 2]
set1 = set(lis)
print(set1) #>>>{1, 2, 3, 4, 5}
lis = list(set1)
print(lis) #>>>[1, 2, 3, 4, 5]
14,將集合變成不可變集合
set1 = frozenset({1,2,3})
print(set1,type(set1)) #>>>frozenset({1, 2, 3}) <class 'frozenset'>
s = frozenset('colour')
print(s,type(s)) #>>>frozenset({'l', 'u', 'c', 'o', 'r'}) <class 'frozenset'>
s = frozenset([1, 3, 4, 3, 5, 5, 2])
print(s,type(s)) #>>>frozenset({1, 2, 3, 4, 5}) <class 'frozenset'>