少說話多寫程式碼之Python學習058——標準模組(集合)
阿新 • • 發佈:2018-12-12
來看看集合(set)的使用。集合類set在sets模組中,Python2.3之後,集合類已經成為語言的一部分,無需再匯入sets模組。
先看看簡單的使用,
print(set(range(10)))
輸出
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
集合中重複值是被忽略的,比如這樣,
single=set([1,6,7,8,6,6,6,8])
print(single)
輸出
{8, 1, 6, 7}
元素的順序,不會依照宣告時的順序,
sort = set(['陸小鳳','西門吹雪','葉孤城']) print(sort) 輸出 {'葉孤城', '西門吹雪', '陸小鳳'}
集合可以做一些運算,定義了集合seta和setb,做如下運算,
比如並集
seta=set([10,20,40])
setb=set([30,40,50])
setc = seta.union(setb)
print(setc)
輸出
{50, 20, 40, 10, 30}
按位與,
print(seta |setb)
輸出
{50, 20, 40, 10, 30}
其他一些運算,
setd =seta&setb print(setd.issubset(seta)) 輸出:True print(setd <=seta) 輸出:True print(setd.issuperset(seta)) 輸出:False print(seta.intersection(setb)) 輸出:{40} print(seta&setb) 輸出:{40} print(seta.difference(setb)) 輸出:{10, 20} print(seta-setb) 輸出:{10, 20} print(seta.symmetric_difference(setb)) 輸出:{10, 50, 20, 30} print(seta^setb) 輸出:{10, 50, 20, 30} print(seta.copy()) 輸出:{40, 10, 20} print(seta.copy() is seta) 輸出:False
集合是可變的,不能作為字典中的鍵。而集合本身只能包含不可變,所以集合不能包含其他集合,如下這樣是錯誤的,
Traceback (most recent call last):
File "D:/work/Python/StandardLibrary4.py", line 40, in <module>
print(a.add(b))
TypeError: unhashable type: 'set'
工程檔案下載:https://download.csdn.net/download/yysyangyangyangshan/10838713