標籤:python學習 key 區別 轉換 出現 類型 move 並集 china
1.前言
python中的集合set與列表類似,它們最大的區別是集合內不允許出現重複元素,如果在定義時包含重複元素,會自動去重。
集合是無序的,集合中的元素必須是不可變類型。集合可以作為字典的key。
2.集合的定義
集合用一對花括弧{}定義
set = {'dog','cat','pig','monkey'}print(set)# 輸出{'pig', 'cat', 'monkey', 'dog'}
3.集合的常見操作
set = {'dog','cat','pig','monkey'}set.add('china')set.add('china')print(set)# 輸出{'cat', 'pig', 'china', 'monkey', 'dog'}
注意:集合內部不允許出現重複元素,如果有重複元素,集合會自動去重,所以當往集合的尾部添加兩個相同元素時,只會保留一個。
set = {'dog','cat','pig','monkey'}set.clear()print(set)# 輸出set()
- pop()
隨機刪除集合內的一個元素,並返回所刪除的元素
set = {'dog','cat','pig','monkey'}print(set.pop())print(set)# 輸出'pig'{'cat', 'monkey', 'dog'}
- remove(x)
刪除集合內的元素x,如果元素x不存在會報錯
set = {'dog','cat','pig','monkey'}set.remove('dog')print(set)set.remove('dog')# 輸出{'pig', 'cat', 'monkey'}報錯,因為已經把元素'dog'從集合中刪去了,再次刪除'dog'時,由於集合中已經不存在該元素了,所以報錯
- discard(x)
刪除集合內的元素x,如果元素x不存在會返回None,不會報錯
set = {'dog','cat','pig','monkey'}set.discard('dog')print(set)print(set.discard('dog'))# 輸出{'pig', 'cat', 'monkey'}None
4.集合的關係運算
set1 = {'a','b','c','d'}set2 = {'h','e','a','l','c'}print(set1 & set2)# 輸出{'c', 'a'}
set1 = {'a','b','c','d'}set2 = {'h','e','a','l','c'}print(set1 | set2)# 輸出{'c', 'a', 'h', 'd', 'b', 'l', 'e'}
set1 = {'a','b','c','d'}set2 = {'h','e','a','l','c'}print(set1 - set2)# 輸出{'b', 'd'}
5.利用集合對列表去重
利用集合內不允許出現重複元素這一天然特點,我們可以用來對列表去重
l1 = ['h','e','l','l','o']#1.將列錶轉為集合,集合會自動去重s1 = set(l1)#2.將去重後的集合再轉回列表l1 = list(s1)print(l1)# 輸出['l', 'o', 'h', 'e']
想必細心的你已經看出來了,去重前後的列表中的元素順序變了,由於集合是無序的,有序的列錶轉換成集合後變成了無序的,所以元素的順序發生了變化,這並不是我們想要的,我們只想去掉列表中重複的元素而不想改變列表中元素的順序,這也就是這種去重方法的缺點。
python學習之【第七篇】:Python中的集合及其所具有的方法