歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)Python知識,本文學(xué)習(xí)的是《Python中集合的交集、并集、差集和對稱差集運算方法詳解》。主要講的是集合運算的相關(guān)的概念,及運算方法,包括:集合的交集、集合的并集、集合的差集、集合的對稱差集、集合的交集運算方法、集合的并集運算方法、集合的差集運算方法、集合的對稱差集運算方法。
專注于為中小企業(yè)提供網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)城東免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
在Python中,集合最常用的操作就是進行交集、并集、差集和對稱差集的運算。
要想學(xué)習(xí)集合的交集、并集、差集和對稱差集運算方法,首先我們來了解這些名詞的含義:
設(shè)A、B兩個集合,由所有屬于集合A且屬于集合B的元素所組成的集合,叫做集合A與集合B的交集。在Python中,進行交集運算時使用“”符號。
給定兩個集合A、B,把他們所有的元素合并在一起組成的集合,叫做集合A與集合B的并集。在Python中,進行并集運算時使用“|”符號。
設(shè)A,B是兩個集合,則所有屬于A且不屬于B的元素構(gòu)成的集合,叫做集合A與集合B的差集。在Python中,進行差集運算時使用“-”符號。
對稱差集也稱為對稱差分或者補集,設(shè)A,B是兩個集合,所有不相同的集合,叫做集合A與集合B的對稱差集(對稱差分或者補集)。在Python中,進行對稱差集運算時使用“^”符號。
上面都是概念性的描述,下面站長在線來舉實際的場景來對交集、并集、差集和對稱差集運算方法進行深入淺出的解讀。
場景模擬:某高中三年級,文科班高考的科目是語文、數(shù)學(xué)、英語、政治、 歷史 和地理。理科班高考的科目是語文、數(shù)學(xué)、英語、物理、化學(xué)和生物。
設(shè)定集合A為文科班高考的科目,集合B為理科班高考的科目。
A = {'語文','數(shù)學(xué)','英語','政治',' 歷史 ','地理'}
B = {'語文','數(shù)學(xué)','英語','物理','化學(xué)','生物'}
我們使用集合的交集運算的時候可以采用兩種方式,一種是使用“”運算符進行操作,另一種是使用 intersection() 方法來實現(xiàn)。
運行結(jié)果:
運行結(jié)果:
同理集合B和集合A的交集也是一樣。我這里就不重復(fù)了,自己去體驗一下。
集合的并集運算也有兩種方式,一種是使用“|”運算符進行操作,另一種是使用union()方法來實現(xiàn)。
運行結(jié)果如下:
運行結(jié)果為:
同理集合B和集合A的并集也是一樣。自己去體驗一下吧!
集合的差集運算也有兩種方式,一種是使用“-”運算符進行操作,另一種是使用difference()方法來實現(xiàn)。
運行結(jié)果為:
上面是集合A和集合B的差集,但是集合B和集合A的差集就不是一樣的了哦!
運行結(jié)果為:
從上面可以看出,集合A和集合B的差集 與 集合B和集合A的差集是不一樣的,(A - B)是A中存在的部分,(B - A)是B中存在的部分。
運行結(jié)果:
同理,使用difference()方法進行集合B和集合A的差集也是不同的
運行結(jié)果:
集合的差集運算也有兩種方式,一種是使用“^”運算符進行操作,另一種是使用symmetric_difference()方法來實現(xiàn)。
運行結(jié)果為:
運行結(jié)果為:
同樣的,集合B與集合A的對稱差集也是一樣,自己去體驗一下。
我們對集合的交集、并集、差集和對稱差集運算方法全部詳細的講解了一遍,通過運行結(jié)果,我們得出結(jié)論:
集合中進行交集、并集、對稱差集進行運算的時候,集合A與集合B,位置替換的時候,結(jié)果相同。
集合中進行差集運算的時候,集合A與集合B,位置替換的時候,結(jié)果不同,為前面那個集合獨立存在的部分。
到此為止,本節(jié)課的內(nèi)容《Python中集合的交集、并集、差集和對稱差集運算方法詳解》就完全講完了,主要講的集合運算的相關(guān)的概念,及運算方法,包括:集合的交集、集合的并集、集合的差集、集合的對稱差集、集合的交集運算方法、集合的并集運算方法、集合的差集運算方法、集合的對稱差集運算方法。
本文實例講述了python獲得兩個數(shù)組交集、并集、差集的房部分。分享給大家供大家參考。具體如下:
1. 獲取兩個list 的交集
#方法一:
a=[2,3,4,5]
b=[2,5,8]
tmp = [val for val in a if val in b]
print tmp
#[2, 5]
#方法二
print list(set(a).intersection(set(b)))
2. 獲取兩個list 的并集
print list(set(a).union(set(b)))
3. 獲取兩個 list 的差集
print list(set(b).difference(set(a))) # b中有而a中沒有的
通過以上方法,就能處理python list 的交集,并集,差集了。
我們在遇到一些問題的時候,使用集合的交集、并集和差集能夠更便捷的幫助我們?nèi)ソ鉀Q問題,看下面一個例子。
某學(xué)校有兩個班級,班級A需要學(xué)習(xí)數(shù)學(xué)、語文、英語、物理、化學(xué)和生物,班級B需要學(xué)習(xí)數(shù)學(xué)、語文、英語、政治、地理和歷史。
我們可以直接看出A班級和B班級的交集為數(shù)學(xué)、語文和英語,并集為數(shù)學(xué)、語文、英語、物理、化學(xué)、生物、政治、地理、歷史,A和B的差集為物理、化學(xué)和生物。
那么怎么使用Python去完成這些運算?
我們先在這里定義兩個集合,
因為是求交集,因此A和B的位置調(diào)換依然不影響結(jié)果。
使用集合求并集的方式同樣也是兩種方式,一種是使用 ‘|’ 運算符進行操作,一種是使用 union() 方法來實現(xiàn)。
求并集的時候同樣不需要注意 A 和 B 的位置關(guān)系。
使用集合求差集的方式同樣也是兩種方式,一種是使用 ‘-’ 運算符進行操作,一種是使用 difference() 方法來實現(xiàn)。
在方法2中注意 A 和 B 的位置不同的時候是有區(qū)別的,如果是 A 使用 difference() 方法,那么是輸出 A 中有而 B 中沒有的元素,如果是 B 使用 difference() 方法,那么是輸出 B 中有而 A 中沒有的元素。
學(xué)習(xí)完了集合,四種核心集合我們已經(jīng)基本掌握,接下來幾節(jié)我們來通過學(xué)習(xí)一些字符串的相關(guān)操作,學(xué)習(xí)字符串的過程中會穿插著前面簡單介紹過但沒仔細講解的方法及操作。
如果原數(shù)據(jù)是唯一的,就把每一個元素,添加到一個字典中
最終獲得類似{"A1":5,"A3":2,"D1":5,"D3":10}的字典,也就是記錄每一個元素出現(xiàn)的次數(shù),如果是10個元組的交集,那么次數(shù)=10。