真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python集合交集函數(shù),python求集合交集

Python 簡明教程 ---13,Python 集合

目錄

站在用戶的角度思考問題,與客戶深入溝通,找到永平網(wǎng)站設(shè)計(jì)與永平網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋永平地區(qū)。

前幾節(jié)我們已經(jīng)介紹了Python 中的 列表list , 元組tuple 和 字典dict ,本節(jié)來介紹Python 中的最后一種數(shù)據(jù)結(jié)構(gòu)—— 集合set 。

Python 中的 set 與 dict 很像,唯一的不同是, dict 中保存的是 鍵值對 ,而 set 中只保存 鍵 ,沒有 值 。

Python 集合 有如下特點(diǎn):

Python 集合的聲明有兩種方式:

創(chuàng)建 空集合 時(shí),只能用 set() ,而不能用 {} :

創(chuàng)建 非空集合 時(shí),可以用 set() ,也可以用 {} :

由于集合中的元素是唯一的,如果初始化時(shí)的 可迭代 數(shù)據(jù)中有重復(fù)的元素,則會自動刪去重復(fù)的元素:

使用 len() 函數(shù)可以查看集合中元素的個(gè)數(shù):

由于Python 集合中的元素的是無序的,所以可不能使用 下標(biāo) 的方式來訪問集合中的單個(gè)元素。

我們可以使用 for 循環(huán) 來遍歷集合中的所有元素:

我們可以對兩個(gè)集合進(jìn)行如下運(yùn)算:

交集與并集

in 運(yùn)算

使用 dir(set) 查看集合支持的所有方法:

下面一一介紹這些 非魔法方法 ,共17 個(gè)。

1. add 方法

由于集合中的元素是唯一的,向集合中添加元素時(shí)有兩種情況:

示例:

2. remove 方法

示例:

3. discard 方法

示例:

4. pop 方法

示例:

5. union 方法

示例:

6. update 方法

示例:

7. clear 方法

示例:

8. copy 方法

示例:

9. difference 方法

示例:

10. difference_update 方法

示例:

11. intersection 方法

示例:

12. intersection_update 方法

示例:

13. isdisjoint 方法

示例:

14. issubset 方法

示例:

15. issuperset 方法

示例:

16. symmetric_difference 方法

示例:

17. symmetric_difference_update 方法

示例:

(完。)

推薦閱讀:

Python 簡明教程 --- 8,Python 字符串函數(shù)

Python 簡明教程 --- 9,Python 編碼

Python 簡明教程 ---10,Python 列表

Python 簡明教程 ---11,Python 元組

Python 簡明教程 ---12,Python 字典

python中set()函數(shù)的用法

python中set()函數(shù)的用法如下:

工具/原料:臺式電腦、Win10、Python3.6.5。

1、首先按下“Win+R”組合鍵,打開運(yùn)行窗口,如下圖所示。

2、在打開文本框輸入“cmd”,點(diǎn)擊確定,如下圖所示。

3、在打開的cmd窗口中,輸入:“python”,點(diǎn)擊Enter鍵,如下圖所示。

4、在Python環(huán)境中,輸入:“x = set(('hi', 'hello', 'world'))”,點(diǎn)擊Enter鍵,如下圖所示。

5、在Python環(huán)境中,輸入:“print(x)”,如下圖所示。

6、點(diǎn)擊Enter鍵,即可使用Python內(nèi)置的set()函數(shù)創(chuàng)建一個(gè)集合對象,并打印出來,如下圖所示。

Python的集合介紹

和列表類似,集合也是一個(gè)數(shù)據(jù)集合,其也不要求元素的類型一致。但是集合有下面兩個(gè)特點(diǎn):

?集合內(nèi)元素唯一。如不可以用1、2、1、1組成集合,因?yàn)槠浒貜?fù)的1。

?集合是無序的,添加元素時(shí)不能指定位置,刪除元素時(shí)也不能通過指定位置,只能通過指定值。當(dāng)然也不能通過位置來定位某個(gè)元素。

1、創(chuàng)建集合

我們可以從列表創(chuàng)建集合,將列表中的元素都加入到集合中,如果有重復(fù)的元素就僅保留一個(gè)。

a = set([1, 1, 3])

print(a)#輸出結(jié)果:set([1, 3])? ? ?

也可以從元組、字典和其他集合構(gòu)建集合。比如:

a = set((0, 1, 2, 3, 3, 2))? ?

使用的是字典的鍵來構(gòu)建集合,字典的值沒有被使用到,比如:

a = set({1:10, 2:20, 3:30})

從字符串構(gòu)建集合,其每個(gè)字符都成為集合的一個(gè)元素,比如:

a = set("abcdefabc")?

輸出結(jié)果:a={'c', 'e', 'f', 'b', 'd', 'a'}

另外一個(gè)集合構(gòu)建集合,比如:

a = set([1, 2, 3])?

b = set(a)? 輸出結(jié)果:b={1, 2, 3}

當(dāng)然也可以構(gòu)造一個(gè)空的集合,使用的方法是set()??占蠜]有任何元素,比如:

a = set()

1.添加元——add(值)

該函數(shù)只能添加一個(gè)元素。

如果添加的元素已經(jīng)在集合中存在,那么不會發(fā)生任何變化。

2.扔掉元素——discard(值)

該函數(shù)刪除集合中指定的值對應(yīng)的元素。

如果指定值在集合中不存在,則不做任何操作。

3.刪除指定值——remove(值)

該函數(shù)和discard()的不同之處在于,如果指定的值在集合中不存在,會拋出異常。

4.清空所有元素——clear()

該函數(shù)扔掉所有的元素。執(zhí)行完該函數(shù)后,該集合將變成一個(gè)空的集合。

a.clear()

5.刪除第一個(gè)元素——pop()

如果集合中有元素,則返回值為刪除掉的元素的值。

如果集合為空,則拋出異常。

6.得到差集——difference(集合對象)

該函數(shù)返回一個(gè)新的集合,該集合包含所有屬于a而不屬于b的元素,如圖所示。該操作不會改變原始集合a或者b的內(nèi)容。

7.差集操作符(-)

該操作符和difference()類似,返回一個(gè)新的集合,該集合包含所有屬于a而不屬于b的元素。該操作不會改變原始輸入集合a或者b的內(nèi)容。

8.從集合中刪除另一個(gè)集合中存在的元素——difference_update(集合對象)

該函數(shù)和difference()的不同是操作數(shù)a會被修改,而且沒有返回值。

9.得到兩個(gè)集合的交集——intersection(集合)

該函數(shù)返回所有的同時(shí)屬于集合a和集合b的元素組成的集合,即返回的是一個(gè)集合,該集合的所有元素都同時(shí)屬于集合a和b,如圖所示。輸入集合a和b在該過程中沒有發(fā)生任何改變。

10.交集操作符()

該操作符和intersection()的效果是一樣的。

11.刪除集合a中所有不屬于集合b的元素——intersection_update(集合)

該函數(shù)也是求交集,與intersection()不同的是其修改原始輸入集合,并且沒有返回值。這也是為何該接口函數(shù)后面帶有update字樣,因?yàn)槠涓铝嗽瓉淼妮斎爰稀?/p>

12.是否存在交集——isdisjoint()

該函數(shù)判斷是否存在這樣的元素,其同時(shí)屬于集合a和集合b。如果存在這樣的元素,返回False;否則返回True。

13.并集——union(集合a,集合b)

該函數(shù)返回一個(gè)新的集合,該集合的元素要么屬于輸入集合a要么屬于集合b。該操作不修改作為輸入的兩個(gè)集合a和b。如圖表示該函數(shù)返回的集合的內(nèi)容。

14.并集操作符(|)

該操作符和union()的效果是一樣的。其返回一個(gè)并集,并且不修改輸入集合的內(nèi)容。

15.添加屬于b而不屬于a的元素——update()

該函數(shù)在集合a中添加屬于b而不屬于a的所有元素。該操作和union()不同的是,其修改了輸入集合a,并且沒有返回值。

16.外集——symmetric_difference()

外集就是由只屬于集合a或者只屬于集合b的元素組成的集合,如圖所示。該操作返回一個(gè)新的集合,并且不修改原來的輸入集合a和b。

17.外集操作符(^)

該操作符和symmetric_difference()的效果是一樣的,也是返回一個(gè)新的集合,并且不會修改輸入的集合a或者b。

18.a和b的并集減去a和b的交集——symmetric_difference_update()

該函數(shù)和symmetric_difference()的區(qū)別是,其修改了集合a的值,并且沒有返回值。

19.是指定集合的子集嗎——issubset()

a是b的子集就是說集合a的所有元素都屬于集合b。

如果a等于b,那么a和b互為子集。

20.是指定集合的超集嗎——issuperset()

a是b的超集合就是說集合b中的所有元素都屬于集合a。

如果a是b的超集,那么b就是a的子集。

如果a等于b,那么它們互為子集,同時(shí)也互為超集。

python--set(集合)

一、創(chuàng)建集合

創(chuàng)建非空集合:集合中set括號中需要的參數(shù)的數(shù)據(jù)類型有:序列(包括字符串、列表、元組),字典可以轉(zhuǎn)為集合,注意數(shù)值類型不能作為集合的參數(shù),如int類型。

二、添加元素

add() 方法是將要添加的元素作為一個(gè)整體添加到集合中

update() 方法是把要傳入的元素拆分成單個(gè)字符,存于集合中,并去掉重復(fù)的

三、刪除元素

集合的刪除操作使用的方法跟列表是一樣的,使用的也是 remove 方法,只能單個(gè)刪除

四、遍歷集合

五、集合與字符串、列表、元組互轉(zhuǎn),集合轉(zhuǎn)字典

六、查找元素并刪除

函數(shù)原型: a.discard(b)

參數(shù)說明:a為一個(gè)set類型的變量;b表示要查找并刪除的元素

函數(shù)作用:在集合setVar中查找element元素,如果存在則刪除;如果沒找到,則什么也不做。該函數(shù)沒有返回值

七、pop用法

函數(shù)原型: set1.pop() ? ? 刪除并返回集合set1中的第一個(gè)元素,如果為空引發(fā)KeyError錯誤+

八、clear、copy和len的用法

clear ????方法用于清空集合中的所有元素

copy ????方法用于集合拷貝

len ????跟求序列的長度的函數(shù)len()是一樣的,返回的是集合中有多少個(gè)元素

九、求集合的交集、并集、差集和difference的用法

求集合的 交集 使用的符號是 “”

求集合的 并集 用的是符號 “|”

求集合的 差集 使用的符號是減號 “-”

difference? ? 等價(jià)于集合的差集 ,查看兩個(gè)集合的不同之處。這種不同指的是集合s1相對于集合s2,不同的地方,也就是所有在集合s1中,而不再集合s2中的的元素組成的新集合

十、運(yùn)算符判斷集合間關(guān)系和issuperset、issubset的用法

集合可以使用大于()、小于()、大于等于(=)、小于等于(=)、等于(==)、不等于(!=)來判斷某個(gè)集合是否完全包含于另一個(gè)集合,也可以使用子父集判斷函數(shù)。

issuperset ? ? 集合st1是否是集合st2的父集

issubset ? ??集合st1是否是集合st2的子集

十一、不可變集合frozenset的用法

frozenset ? ??該集合中的內(nèi)容是不可改變的,其他功能及操作跟可變集合set一樣

Python精講:Python中集合的交集并集差集和對稱差集運(yùn)算方法詳解

歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)Python知識,本文學(xué)習(xí)的是《Python中集合的交集、并集、差集和對稱差集運(yùn)算方法詳解》。主要講的是集合運(yùn)算的相關(guān)的概念,及運(yùn)算方法,包括:集合的交集、集合的并集、集合的差集、集合的對稱差集、集合的交集運(yùn)算方法、集合的并集運(yùn)算方法、集合的差集運(yùn)算方法、集合的對稱差集運(yùn)算方法。

在Python中,集合最常用的操作就是進(jìn)行交集、并集、差集和對稱差集的運(yùn)算。

要想學(xué)習(xí)集合的交集、并集、差集和對稱差集運(yùn)算方法,首先我們來了解這些名詞的含義:

設(shè)A、B兩個(gè)集合,由所有屬于集合A且屬于集合B的元素所組成的集合,叫做集合A與集合B的交集。在Python中,進(jìn)行交集運(yùn)算時(shí)使用“”符號。

給定兩個(gè)集合A、B,把他們所有的元素合并在一起組成的集合,叫做集合A與集合B的并集。在Python中,進(jìn)行并集運(yùn)算時(shí)使用“|”符號。

設(shè)A,B是兩個(gè)集合,則所有屬于A且不屬于B的元素構(gòu)成的集合,叫做集合A與集合B的差集。在Python中,進(jìn)行差集運(yùn)算時(shí)使用“-”符號。

對稱差集也稱為對稱差分或者補(bǔ)集,設(shè)A,B是兩個(gè)集合,所有不相同的集合,叫做集合A與集合B的對稱差集(對稱差分或者補(bǔ)集)。在Python中,進(jìn)行對稱差集運(yùn)算時(shí)使用“^”符號。

上面都是概念性的描述,下面站長在線來舉實(shí)際的場景來對交集、并集、差集和對稱差集運(yùn)算方法進(jìn)行深入淺出的解讀。

場景模擬:某高中三年級,文科班高考的科目是語文、數(shù)學(xué)、英語、政治、 歷史 和地理。理科班高考的科目是語文、數(shù)學(xué)、英語、物理、化學(xué)和生物。

設(shè)定集合A為文科班高考的科目,集合B為理科班高考的科目。

A = {'語文','數(shù)學(xué)','英語','政治',' 歷史 ','地理'}

B = {'語文','數(shù)學(xué)','英語','物理','化學(xué)','生物'}

我們使用集合的交集運(yùn)算的時(shí)候可以采用兩種方式,一種是使用“”運(yùn)算符進(jìn)行操作,另一種是使用 intersection() 方法來實(shí)現(xiàn)。

運(yùn)行結(jié)果:

運(yùn)行結(jié)果:

同理集合B和集合A的交集也是一樣。我這里就不重復(fù)了,自己去體驗(yàn)一下。

集合的并集運(yùn)算也有兩種方式,一種是使用“|”運(yùn)算符進(jìn)行操作,另一種是使用union()方法來實(shí)現(xiàn)。

運(yùn)行結(jié)果如下:

運(yùn)行結(jié)果為:

同理集合B和集合A的并集也是一樣。自己去體驗(yàn)一下吧!

集合的差集運(yùn)算也有兩種方式,一種是使用“-”運(yùn)算符進(jìn)行操作,另一種是使用difference()方法來實(shí)現(xiàn)。

運(yùn)行結(jié)果為:

上面是集合A和集合B的差集,但是集合B和集合A的差集就不是一樣的了哦!

運(yùn)行結(jié)果為:

從上面可以看出,集合A和集合B的差集 與 集合B和集合A的差集是不一樣的,(A - B)是A中存在的部分,(B - A)是B中存在的部分。

運(yùn)行結(jié)果:

同理,使用difference()方法進(jìn)行集合B和集合A的差集也是不同的

運(yùn)行結(jié)果:

集合的差集運(yùn)算也有兩種方式,一種是使用“^”運(yùn)算符進(jìn)行操作,另一種是使用symmetric_difference()方法來實(shí)現(xiàn)。

運(yùn)行結(jié)果為:

運(yùn)行結(jié)果為:

同樣的,集合B與集合A的對稱差集也是一樣,自己去體驗(yàn)一下。

我們對集合的交集、并集、差集和對稱差集運(yùn)算方法全部詳細(xì)的講解了一遍,通過運(yùn)行結(jié)果,我們得出結(jié)論:

集合中進(jìn)行交集、并集、對稱差集進(jìn)行運(yùn)算的時(shí)候,集合A與集合B,位置替換的時(shí)候,結(jié)果相同。

集合中進(jìn)行差集運(yùn)算的時(shí)候,集合A與集合B,位置替換的時(shí)候,結(jié)果不同,為前面那個(gè)集合獨(dú)立存在的部分。

到此為止,本節(jié)課的內(nèi)容《Python中集合的交集、并集、差集和對稱差集運(yùn)算方法詳解》就完全講完了,主要講的集合運(yùn)算的相關(guān)的概念,及運(yùn)算方法,包括:集合的交集、集合的并集、集合的差集、集合的對稱差集、集合的交集運(yùn)算方法、集合的并集運(yùn)算方法、集合的差集運(yùn)算方法、集合的對稱差集運(yùn)算方法。


分享標(biāo)題:python集合交集函數(shù),python求集合交集
鏈接地址:http://weahome.cn/article/hdccjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部