Python易錯點6
阿新 • • 發佈:2020-12-21
73. 集合常規操作
73.1
#set 運算子 a=set('abracadabra') b=set('alacazam') #集合a中包含而集合b中不包含的元素 print("a-b:",a-b) # a-b: {'r', 'd', 'b'} #集合不支援+ # print(a+b) # TypeError: unsupported operand type(s) for +: 'set' and 'set' # 集合a或b中包含的所有元素 並集 print("a|b:",a|b) # a|b: {'d', 'b', 'r', 'm', 'l', 'c', 'a', 'z'} # 集合a和b中都包含了的元素 交集 print("a&b:",a&b) # a&b: {'c', 'a'} # 不同時包含於a和b的元素 去掉交集 print("a^b:",a^b) # a^b: {'r', 'l', 'd', 'b', 'm', 'z'} print({1,2,3,4,5} ^ { 6,7}) # {1,2,3,4,5,6,7}
異或在數學上就是對稱差(Symmetric difference)
數學上,兩個集合的對稱差(Symmetric difference)是隻屬於其中一個集合,而不被兩個集合同時包含。 例如:集合{1,2,3}和{3,4}的對稱差為{1,2,4}。集合論中的這個運算相當於布林邏輯中的異或運算。所以在Python裡使用了異或的符號(^)表示,內建函式為symmetric_difference()
73.2 集合增刪
1.新增元素add和update
# 1.新增元素 thisset = set(("Google", "Runoob", "Taobao")) thisset.add("Facebook") print(thisset) # 還有一個方法,也可以新增元素,且引數可以是列表,元組,字典等,語法格式如下: thisset.update({1, 3}) thisset.update([1, 4], [5, 6]) thisset.update({'a': 'aaa'}) print(thisset)
2.移除元素
# s.remove( x )
# 將元素 x 從集合
s 中移除,如果元素不存在,則會發生錯誤。
thisset = set(("Google", "Runoob", "Taobao")) thisset.remove("Taobao") print(thisset) # {'Google', 'Runoob'} # thisset.remove("Facebook") # 不存在會發生錯誤 # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # KeyError: 'Facebook'
# 此外還有一個方法也是移除集合中的元素,且如果元素不存在,不會發生錯誤。格式如下所示:
# s.discard( x )
thisset = set(("Google", "Runoob", "Taobao")) thisset.discard("Facebook") # 不存在不會發生錯誤 print(thisset)
執行結果:
{'Taobao', 'Google', 'Runoob'}