006_集合

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'>
相關文章
相關標籤/搜索