[Python] 學習使用集合(Set) - 通訊雜記

文章推薦指數: 80 %
投票人數:10人

宣告與建立集合(Set) · 集合加入與刪除元素 · 集合可使用的函式 · 判斷元素是否存在於集合中 · 利用for 迴圈來印出集合 · 聯集交集差集對稱差集 · 子集合與超 ... Thisisatest You’llfindthispostinyour_postsdirectory.Goaheadandedititandre-buildthesitetoseeyourchanges.Youcanrebuildthesiteinmanydifferentways,butthemostcommonwayistorunjekyllserve,whichlaunchesawebserverandauto-regeneratesyoursitewhenafileisupdated. Toaddnewposts,simplyaddafileinthe_postsdirectorythatfollowstheconventionYYYY-MM-DD-name-of-post.extandincludesthenecessaryfrontmatter.Takealookatthesourceforthisposttogetanideaabouthowitworks. Jekyllalsoofferspowerfulsupportforcodesnippets: defprint_hi(name) puts"Hi,#{name}" end print_hi('Tom') #=>prints'Hi,Tom'toSTDOUT. CheckouttheJekylldocsformoreinfoonhowtogetthemostoutofJekyll.Fileallbugs/featurerequestsatJekyll’sGitHubrepo.Ifyouhavequestions,youcanaskthemonJekyllTalk.   Jun20,2018     WenYuan     Python3   UPDATE:Jun21,2018 [Python]學習使用集合(Set) 集合(Set)其實和數組(Tuple)與串列(List)很類似,不同的點在於集合不會包含重複的資料 宣告與建立集合(Set) set1=set()#建立空的集合 set2={1,2,3,4,5} #從串列(List)來建立集合 set3=set([iforiinrange(20,30)]) #從數組(Tuple)來建立集合 set4=set((10,20,30,40,50)) #集合不會包含重複的資料,你可以從set5印出來的結果得知 set5=set((1,1,1,2,2,3)) print(set1) print(set2) print(set3) print(set4) print(set5) 注意:建立空集合的方法是set1=set()而不是set1={} 集合加入與刪除元素 可以使用add(value)來加入新元素,也可以使用remove(value)來移除元素 set2={1,2,3,4,5} set4=set((10,20,30,40,50)) set2.add(6)#在set2中加入6 set4.remove(20)#將set4中的20刪除 print(set2) print(set4) 集合可使用的函式 與串列(List)和數組(Tuple)一樣可以使用以下函式 len()回傳長度 sum()回傳總和 max()回傳最大值 min()回傳最小值 set1={2,4,6,8,10} print(len(set1)) print(sum(set1)) print(max(set1)) print(min(set1)) 判斷元素是否存在於集合中 與串列(List)和數組(Tuple)一樣可以使用in和notin來判斷元素是否存在於集合中 set1={2,4,6,8,10} print(2inset1) print(11inset1) print(3notinset1) print(4notinset1) 利用for迴圈來印出集合 因為集合(Set)沒辦法使用索引(Index)來印出,所以用for迴圈寫時要這樣寫 set1={2,4,6,8,10} foriinset1: print(i,end='') 注意:集合和串列數組不同,不可以使用索引來擷取特定元素 聯集交集差集對稱差集 union:聯集 intersection:交集 difference:差集 symmetric_difference:對稱差集 setA={1,6,8,10,20} setB={1,3,8,10} #以下兩個都是聯集的寫法 print(setA.union(setB)) print(setA|setB) #以下兩個都是交集的寫法 print(setA.intersection(setB)) print(setA&setB) #以下兩個都是差集的寫法 print(setA.difference(setB)) print(setA-setB) #以下兩個都是對稱差集的寫法 print(setA.symmetric_difference(setB)) print(setA^setB) 聯集:AB集合的所有項目 交集:AB集合的共有項目 差集:A集合扣掉AB集合的共有項目 對稱差集:AB集合的獨有項目 子集合與超集合 除了上面提到的集合外,還有其他兩種集合:子集合(subset)與超集合(superset) 子集合(sebset):若A集合的所有項目是B集合的部分集合,則稱A為B的子集合 超集合(superset):若A集合的所有項目是B集合的部分集合,則稱B為A的超集合 setA={1,6,8} setB={1,6,8,10,20} #使用issubset()來判斷A是否為B的子集合 print(setA.issubset(setB)) #使用issuperset()來判斷B是否為A的子集合 print(setB.issuperset(setA)) 判斷兩個集合是否相等 使用==與!=來判斷兩個集合是否相同 setA={1,6,8} setB={1,6,8,10,20} print(setA==setB) print(setA!=setB)



請為這篇文章評分?