Python從入門到精通之Sixth!
阿新 • • 發佈:2019-02-20
dict 集合 元素 去重 diff tro 清空 補集 拷貝
補充:enumerate 函數用於遍歷序列(元組tuple、列表list、字典dict)中的元素以及它們的下標:
>>> for i,j in enumerate((‘a‘,‘b‘,‘c‘)): print(i,j,end="") 0 a1 b 2c
Python 集合set
定義:由不同元素組成的無序的元組 形式:S = {‘H‘,‘E‘,‘L‘,‘L‘,‘O‘}或者S = set(‘HELLO‘)
set()函數可以把列表、元組等等轉換為集合 集合可以做到簡單去重的效果,也可以進行交差並等的集合運算。
集合的內置方法:
#add方法:把元素添加到集合s = {1,2,4,5} s.add(‘3‘) #clear方法:清空集合 s.clear() #copy拷貝 s1 = s.copy() #pop方法:隨機刪除一個值 s = {1,2,3,4,5} s.pop() #remove方法:指定刪除,刪除元素不存在會報錯 s = {1,2,3,4,5,‘hello‘} s.remove(‘hello‘) #discard方法:指定刪除,刪除元素不存在不會報錯 s = {1,2,3,4,5,‘hello‘} s.discard(‘hello‘)
集合的運算:交、並、差
#求交集 2個方法:intersection 或 &Linux = [‘a‘,1,2,3,‘b‘] Python = [‘a‘,5,3,6,4,‘c‘] linux_s = set(Linux) python_s = set(Python) print(python_s.intersection(linux_s)) print(python_s & linux_s)
#求並集 2個方法:union 或 | Linux = [‘a‘,1,2,3,‘b‘] Python = [‘a‘,5,3,6,4,‘c‘] a = set(Linux) b = set(Python) print(a.union(b)) print(a | b)#求差集 2個方法:difference 或 -(減號) Linux = [‘a‘,1,2,3,‘b‘] Python = [‘a‘,5,3,6,4,‘c‘] a = set(Linux) b = set(Python) print(b-a) print(a-b) print(b.difference(a)) #b集合減去a集合 print(a.difference(b)) #a集合減去b集合
a.difference_update(b) #a集合減去b集合並更新a集合,與上面作用沒什麽大的區別
#交差補集:兩集合並到一起,之後減去兩個共有的元素
#求交叉補集 兩種方法:symmetric_difference() 或 ^ Linux = [‘a‘,1,2,3,‘b‘] Python = [‘a‘,5,3,6,4,‘c‘] a = set(Linux) b = set(Python) print(a.symmetric_difference(b)) print(a ^ b)
集合運算補充:
#isdisjoint方法:如果兩個集合的交集不存在則為True,否則False print(linux_s.isdisjoint(python_s)) #issubset()方法:如果s1是s2的子集,返回True print(s1.issubset(s2)) #issuperset()方法:如果s1是s2的父集,返回True print(s1.issuperset(s2)) #update更新,add只能添加一個值,而update可用於更新多個值(包括列表元組等等) s1 = {1,2} s2 = {1,2,3} s1.update(s2) ==========>{1,2,3} #symmetric_difference_update方法:與symmetric_difference()交叉補集幾乎相同 #intersection_update:與交集幾乎相同
集合是可變的,定義不可變集合:s = frozenset()
不可變集合沒有add、remove等等的方法。
Python從入門到精通之Sixth!