Python中的集合是什么以及如何使用它們?

      網(wǎng)友投稿 857 2025-03-31

      數(shù)據(jù)存儲(chǔ)是當(dāng)今世界每個(gè)域所必需的。Python提供了不同類(lèi)型的數(shù)據(jù)結(jié)構(gòu)來(lái)組織數(shù)據(jù),這些數(shù)據(jù)結(jié)構(gòu)是Python認(rèn)證培訓(xùn)的重要組成部分。在Python中可用的所有數(shù)據(jù)結(jié)構(gòu)中,有些是可變的,有些是不可變的。在本文中,我將討論其中一種。Python中的集合是可變,可迭代和無(wú)序的數(shù)據(jù)結(jié)構(gòu)。這里是所有后續(xù)內(nèi)容的快速演練。

      What is Set in Python?

      When to use sets in Python?

      How do you create a set?

      Set Operations

      Finding the length of a Set

      Accessing Set elements

      Adding elements to a Set

      Removing Set elements

      Union of Sets

      Intersection of Sets

      Difference of Sets

      What are Frozen Sets?

      How to Create Frozen Sets?

      Accessing Frozen Set elements

      Python中的設(shè)置是什么?

      集合基本上是由無(wú)序元素的集合組成的數(shù)據(jù)類(lèi)型。這些元素可以是任何數(shù)據(jù)類(lèi)型,因?yàn)榕c數(shù)組不同,集合不是特定于類(lèi)型的。集是可變的(可變的),并且沒(méi)有元素的重復(fù)副本。集合的值未索引,因此無(wú)法對(duì)集合執(zhí)行索引操作。

      例子:

      My_Set={1,'s',7.8} print(My_Set)

      輸出:??{'s',1,7.8}

      輸出顯示存在的所有元素My_Set。

      注意:整個(gè)集合是可變的,但是集合的元素不是可變的。

      現(xiàn)在您知道了Python中的集合,讓我們繼續(xù)前進(jìn),了解何時(shí)使用集合。

      什么時(shí)候在Python中使用集合?

      在以下情況下使用Python中的集合-

      數(shù)據(jù)順序無(wú)關(guān)緊要

      您不需要數(shù)據(jù)元素中的任何重復(fù)

      您需要執(zhí)行數(shù)學(xué)運(yùn)算,例如并集,交集等

      現(xiàn)在,讓我們繼續(xù)前進(jìn),看看如何在Python中創(chuàng)建集合。

      如何在Python中創(chuàng)建集合?

      Python中的集合可以通過(guò)兩種方式創(chuàng)建:

      將元素括在花括號(hào)內(nèi)

      通過(guò)使用set()函數(shù)

      1.使用花括號(hào):

      Python中的集合是使用花括號(hào)({})創(chuàng)建的。

      例子:

      My_Set={1,'s',7.8} print(My_Set)

      輸出:? ??{'s',1,7.8}

      如您所見(jiàn),My_Set已創(chuàng)建。

      2.使用set()函數(shù)

      可以使用set()函數(shù)在Python中創(chuàng)建集合。

      例子:

      a=set({1,'b',6.9}) print(a)

      輸出:??{1,'b',6.9}

      您也可以使用相同的功能創(chuàng)建一個(gè)空集。

      例子:

      Empty_Set=set() print(Empty_Set)

      輸出:?set()

      上面的輸出顯示已創(chuàng)建一個(gè)名為Empty_Set的空集。

      您可以將元素添加到此空集中。我將在以下主題中對(duì)此進(jìn)行介紹。

      設(shè)定作業(yè)

      可以對(duì)集合執(zhí)行許多操作,例如添加元素,刪除元素,查找集合的長(zhǎng)度等。要知道可以在集合上使用什么方法,可以使用dir()函數(shù)。

      例子:

      My_Set={1,'s',7.8} dir(My_Set)

      輸出:

      ['__and __','__ class __','__ contains __','__ delattr __','__ dir __','__ doc __','__ eq __','__ format __','__ ge __','__ getattribute __','__ gt __','__ hash__',' __iand __','__ init __','__ init_subclass __','__ ior __','__ isub __','__ iter __','__ ixor __','__ le __','__ len __','__ lt __','__ ne __','__ new __','__ or__' ,'__ rand __','__ reduce __','__ reduce_ex __','__ repr __','__ ror __','__ rsub __','__ rxor __','__ setattr __','__ sizeof __','__ str __','__ sub __','__ subclasshook__',' __xor __','add','clear','copy','difference','difference_update','discard','intersection','intersection_update','isdisjoint','issubset','issuperset','pop' ,“刪除”,“對(duì)稱(chēng)差異”,“對(duì)稱(chēng)差異更新”,“聯(lián)合”,“更新”]

      輸出顯示了可以在集合上使用的所有方法。我將在本文中進(jìn)一步說(shuō)明其中的一些。

      查找集合的長(zhǎng)度

      要在Python中查找集合的長(zhǎng)度,可以使用len()函數(shù)。此函數(shù)將集合的名稱(chēng)作為參數(shù),并返回一個(gè)整數(shù)值,該整數(shù)值等于集合中存在的元素?cái)?shù)。

      例子:

      My_Set={1,'s',7.8} len(My_Set)

      輸出3

      如您在上面的輸出中看到的,已返回3,該數(shù)目等于My_Set中存在的元素?cái)?shù)?,F(xiàn)在,也可以訪(fǎng)問(wèn)這些元素,如下所示。

      訪(fǎng)問(wèn)集合的元素

      不能使用索引號(hào)訪(fǎng)問(wèn)Set元素,因?yàn)槿缜八?,不索引集合中的元素。因此,?dāng)您要訪(fǎng)問(wèn)集合的元素時(shí),可以遍歷它并訪(fǎng)問(wèn)其元素。

      例子:

      My_Set={1,'s',7.8} for x in My_Set: print(x)

      輸出:

      ? 1 7.8

      如您在輸出中看到的,順序與提供給集合的元素的順序不同。這是因?yàn)樵匚磁判颉?/p>

      將元素添加到集合中:

      可以使用兩個(gè)函數(shù)add()和update()函數(shù)將元素添加到集合中。

      add()函數(shù)將一個(gè)元素添加到現(xiàn)有集合中,如下所示:

      例子:

      My_Set={1,'s',7.8} My_Set.add(3) My_Set

      輸出:?{1,3,7.8,'s'}

      如果要向現(xiàn)有集合添加多個(gè)元素,則使用update()函數(shù)。

      例子:

      My_Set={1,'s',7.8} My_Set.update([2,4.6,1,'r']) My_Set

      輸出:??{1、2、4.6、7.8,'r','s'}

      從上面的輸出中可以看到,update()函數(shù)獲取4個(gè)值的列表,除1外的所有值都添加到My_Set中。這是因?yàn)榧现幸呀?jīng)存在1,因此無(wú)法再次添加。

      刪除一組元素

      要從集合中刪除元素,可以使用remove(),?discard()和pop()函數(shù)。

      remove()函數(shù)采用一個(gè)參數(shù),該參數(shù)是要從集合中刪除的項(xiàng)目。

      例子:

      My_Set={1, 2, 4.6, 7.8, 'r', 's'} My_Set.remove(2) print(My_Set)

      輸出:?{1,4.6,7.8,'r','s'}

      如您所見(jiàn),已經(jīng)使用remove()函數(shù)從集合中刪除了2個(gè)。如果您指定某個(gè)元素作為set中不存在的remove()參數(shù),它將引發(fā)錯(cuò)誤。

      現(xiàn)在,如果要從集合中刪除某些元素,并且不確定該元素是否確實(shí)存在于集合中,則可以使用discard()函數(shù)。該函數(shù)將要從集合中刪除的元素作為參數(shù),但是如果該元素不存在,則不會(huì)引發(fā)錯(cuò)誤。

      例子:

      My_Set={1, 2, 4.6, 7.8, 'r', 's'} My_Set.discard(4.6) My_Set.discard('i') print(My_Set)

      輸出:?{1,2,7.8,'r','s'}

      上面的輸出顯示從My_Set中刪除了4.6,但是當(dāng)我使用My_Set.discard('i')時(shí),即使我的集合中不存在“ i”,discard()也不會(huì)引發(fā)錯(cuò)誤。

      pop()函數(shù)還刪除集合元素,但是由于集合是無(wú)序的,因此您將不知道哪個(gè)元素已被刪除。

      例子:

      My_Set={1, 2, 4.6, 7.8, 'r', 's'} My_Set.pop() print(My_Set)

      輸出:?{2,4.6,7.8,'r','s'}

      輸出顯示,使用pop()刪除了一些隨機(jī)元素,在本例中為1。

      現(xiàn)在,如果要?jiǎng)h除集合中存在的所有元素,可以使用clear()方法。

      例子:

      My_Set={1, 2, 4.6, 7.8, 'r', 's'} My_Set.clear() print(My_Set)

      輸出:?set()

      如您在上面的輸出中看到的,My_Set是一個(gè)空集。

      如果要完全刪除該集合,可以使用del關(guān)鍵字。

      Python中的集合是什么以及如何使用它們?

      例子:

      My_Set={1, 2, 4.6, 7.8, 'r', 's'} del My_Set print(My_Set)

      當(dāng)您運(yùn)行上面的代碼時(shí),它將被拋出錯(cuò)誤,因?yàn)镸y_Set被刪除了。

      您還可以對(duì)集合執(zhí)行各種數(shù)學(xué)運(yùn)算,例如并集,交集,差等,這將在下面討論。

      Union of Sets

      集的并集是指通過(guò)將兩個(gè)或兩個(gè)以上的集合中存在的所有唯一元素相加,將兩個(gè)或更多集合串聯(lián)在一起。這可以通過(guò)兩種方式完成:

      使用管道

      使用union()函數(shù)

      使用管道符號(hào):

      可以使用|來(lái)連接兩組。符號(hào)如下:

      例子:

      a={1, 2, 4.6, 7.8, 'r', 's'} b={2,5,'d','abc'} c=a|b print(a|b)

      輸出:?{1,2,4.6,5,7.8,'r','abc','s','d'}

      如您所見(jiàn),在上面的輸出中,集合a和集合b的并集存儲(chǔ)在新集合c中。您也可以使用|連接兩個(gè)以上的集合。象征。

      例子:

      a={1, 2, 4.6, 7.8, 'r', 's'} b={2,5,'d','abc'} c={2,3,4,5} d=a|b|c print(d)

      輸出:

      {1,2,3,4,4.6,5,7.8,'abc','d','r','s'}

      使用union()方法:

      要連接兩個(gè)或更多集合,可以使用union()方法,如下所示:

      例子:

      a={1, 2, 4.6, 7.8, 'r', 's'} b={2,5,'d','abc'} c={'m',23,76,4.7} print("Set a U b = ",a.union(b)) print("Set a U b U c = ",a.union(b,c))

      輸出:

      設(shè)置U b = {1,2,4.6,5,7.8,'r','abc','s','d'}

      設(shè)置一個(gè)U b U c = {1,2,4.6,5,4.7,7.8,'r',76,23,'abc','m','s','d'}

      上面的輸出顯示d是集合a,b和c的并集。

      集的交集

      兩個(gè)或更多集合的交集是一個(gè)新集合,僅由這些集合中存在的公共元素組成。

      這可以通過(guò)兩種方式完成:

      使用“&”符號(hào)

      使用交集()函數(shù)

      使用“&”符號(hào):

      您可以使用“&”符號(hào)確定兩個(gè)或多個(gè)集合的交集,如下所示:

      例子:

      a={1, 2,5, 4.6, 7.8, 'r', 's'} b={2,5,'d','abc'} c={2,3,4,} print(a&b) print(a&b&c)

      輸出:

      {2, 5} {2}

      上面的輸出顯示了集合a,b和c的并集。

      使用intersection()函數(shù):

      您可以使用intersection()函數(shù)確定兩個(gè)或更多集合的交集,如下所示:

      例子:

      a={1, 2,5, 4.6, 7.8, 'r', 's'} b={2,5,'d','abc'} c={2,3,4} print("Set a intersection b = ",a.intersection(b)) print("Set a intersection b intersection c = ",a.intersection(b,c))

      輸出:

      設(shè)置交集b = {2,5}

      設(shè)置交集b交集c = {2}

      上面的輸出顯示了集合a,b和c的交集。

      集的區(qū)別:

      集合的差異產(chǎn)生了一個(gè)新集合,該集合由僅存在于那些集合之一中的元素組成。這意味著將返回除那些集合的公共元素以外的所有元素。

      這可以通過(guò)兩種方式完成:

      使用“-”符號(hào)

      使用difference()函數(shù)

      使用“-”符號(hào):

      要使用“-”符號(hào)找出兩組的差異,可以執(zhí)行以下操作:

      例子:

      a={1, 2,5, 4.6, 7.8, 'r', 's'} b={2,5,'d','abc'} c={2,3,4} print(a-b-c)

      輸出:?{1,4.6,7.8,'r','s'}

      輸出包含集合'a'的所有元素,但'b'和'c'中存在的那些元素除外。

      使用difference()函數(shù):

      可以使用內(nèi)置的difference()函數(shù)來(lái)確定集合的差異,如下所示:

      例子:

      a={1, 2,5, 4.6, 7.8, 'r', 's'} b={2,5,'d','abc'} c={2,3,4} print("Set a - b = ",a.difference(b)) print("Set a - b - c = ",a.difference(b,c))

      輸出:

      設(shè)置a – b = {1,4.6,7.8,'r','s'}

      設(shè)置a – b – c = {1,4.6,7.8,'r','s'}

      上面的輸出是使用difference()函數(shù)進(jìn)行差分的結(jié)果。

      現(xiàn)在,如果您根本不想更改集合的元素,可以使用凍結(jié)集合,下面將對(duì)此進(jìn)行討論。

      What are Frozen Sets?

      Python中的凍結(jié)集是無(wú)法修改其值的集。這意味著它是不可變的,這與我之前討論過(guò)的普通集合不同。凍結(jié)集幫助用作字典鍵值對(duì)中的鍵。

      How to Create Frozen Sets?

      可以使用Frozenset()方法獲得凍結(jié)集。此函數(shù)接受所有可迭代的項(xiàng),并將其轉(zhuǎn)換為不可變的。

      例子:

      a={1, 2,5, 4.6, 7.8, 'r', 's'} b=frozenset(a) print(b)

      輸出:?Frozenset({1、2、4.6、5、7.8,'r','s'})

      上面的輸出由集合b組成,集合b是集合a的凍結(jié)版本。

      Accessing Frozen Set elements

      可以通過(guò)循環(huán)訪(fǎng)問(wèn)凍結(jié)集的元素,如下所示:

      例子:

      b=frozenset([1, 2, 4.6, 5, 7.8, 'r', 's']) for x in b: print(x)

      輸出:

      1

      2

      4.6

      5

      7.8

      上面的輸出顯示,使用for循環(huán),凍結(jié)集合b的所有元素都一個(gè)接一個(gè)地返回。

      凍結(jié)集是不可變的,因此,您無(wú)法執(zhí)行諸如add(),remove(),update()等操作。

      希望您對(duì)本教程中與您共享的所有內(nèi)容一清二楚。這使我們結(jié)束了有關(guān)“ Python中的集合”的文章的結(jié)尾。?確保盡可能多地練習(xí)并恢復(fù)經(jīng)驗(yàn)。

      數(shù)據(jù)結(jié)構(gòu) Python

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:如何將文本格式轉(zhuǎn)化為數(shù)值格式(數(shù)值怎么轉(zhuǎn)換文本格式)
      下一篇:華為云釋放的這兩個(gè)信號(hào),將讓云計(jì)算2019年變局
      相關(guān)文章
      亚洲永久中文字幕在线| 亚洲va久久久噜噜噜久久| 久久久久亚洲精品无码蜜桃| 日韩精品成人亚洲专区| 亚洲av无码专区在线观看亚| 国产精品亚洲午夜一区二区三区| 亚洲精品人成电影网| 亚洲视频国产视频| 亚洲黄色中文字幕| 亚洲精品456在线播放| 亚洲精品自拍视频| 精品久久亚洲中文无码| 亚洲五月综合缴情婷婷| 亚洲а∨天堂久久精品9966| 一本色道久久88亚洲精品综合| 在线亚洲高清揄拍自拍一品区| 亚洲中文字幕无码av永久| 亚洲天然素人无码专区| 亚洲成熟丰满熟妇高潮XXXXX| 亚洲人成网站在线在线观看| 亚洲熟女综合色一区二区三区 | 亚洲国产精品无码第一区二区三区| 亚洲精品综合在线影院| 亚洲一卡2卡3卡4卡5卡6卡| 亚洲欧美一区二区三区日产| 亚洲国产欧美一区二区三区 | 老司机亚洲精品影院无码| 亚洲久本草在线中文字幕| 亚洲美女中文字幕| 亚洲视频无码高清在线| 亚洲AV永久无码精品放毛片| 国产亚洲高清在线精品不卡| 久久久久亚洲av成人无码电影| 亚洲日韩小电影在线观看| 亚洲av日韩综合一区在线观看| 久久狠狠高潮亚洲精品| 色在线亚洲视频www| 亚洲AV成人片无码网站| av在线亚洲欧洲日产一区二区| 亚洲AV综合色区无码一区| 亚洲精品免费在线视频|