標籤:sub set 很多 bar 取出 調用 union amp 哪些
什麼是集合?對似懂非懂或者被集合搞暈了的同學可以來看一下。
首先不想說太多概念性的東西,免得又暈了!
請看下面我寫的例子,看完之後自然就知道啥是集合以及如何去應用它
#變數a是一個集合類型a = set()print(type(a))#定義一個列表,並存入很多重複的數字dt = [12,9,2,8,4,9,2,7,4,5,6,11,5,7,5,7,9,8,7,2]for i in dt: #遍曆列表 a.add(i) #將列表中的每一個元素添加進集合#列印集合,發現,自動去掉重複的數字了print(a)#5存在於集合中嗎?print(5 in a)#遍曆集合for item in a: print(item)#將集合轉化成列表set_list = list(a)print(set_list)print(type(set_list))
那麼,集合還涉及到下面幾個牛逼的玩意:
並集:
它將兩個集合作為參數,並返回一個包含全部存在於兩個集合中任意一個的元素的新集合,用union()方法, 操作符是:"|"
交集:
它接收第2個集合為參數,返回的是僅包含同時存在於兩個集合的那些元素,intersection方法實現,操作符是:"&"
差集:
它告訴我們哪些是剩下的元素,它是一個儲存於或是存在於這個集合或是另一個集合,但不是同時存在於兩個集合的對象的集合
symmetric_difference方法實現,操作符是:"-"
繼續看例子
a = {1,2,3,4,5}b = {6,2,3,7}#求a和b的並集,將兩組資料中共同存在的數字去除掉後,產生一個不存在重複數位新集合print(a.union(b))#求a和b的交集,將兩組資料中共有的數字提取出來,並產生一個新的集合,讓我們知道這兩組資料中哪些數字都存在於兩組資料裡print(a.intersection(b))#求a和b的差集,將兩組資料中所沒有的數字提取出來後,產生一個新的集合print(a.symmetric_difference(b))#注意:他們的結果取決於誰是調用者,誰是參數,上面的3條例子中,a集合是調用者,b集合是參數#a集合中的所有數字都存在於b集合的話,則返回true, a是調用者,b是參數print(a.issubset(b))#b集合作為參數,b集合中的所有元素都存在於a集合中的話,返回trueprint(a.issuperset(b))#想要知道全部只存在於a集合而不存在於b集合的元素print(a.difference(b)) #結果是1,4,5#反之print(b.difference(a)) #結果是6和7
總結:
通過測試說明,集合可以用來操作另一個集合,集合不僅僅只是一個容器
那麼,應用情境一般有如下:
1、對兩處不同的資料,如果要快速的結合起來去做分析,那麼請用集合
2、那麼快速的結合起來的目的一般是幹嘛呢?,比如想知道兩處資料中哪些是重複的,哪些是不同的
因此:
集合是一個非常之牛逼的資料比較方式
Python——集合是一個非常之牛逼的資料比較方式