python中集合的操作
⑴ python精講:Python中集合的交集並集差集和對稱差集運算方法詳解
歡迎你來到站長在線的站長學堂學習Python知識,本文學習的是《Python中集合的交集、並集、差集和對稱差集運算方法詳解》。主要講的是集合運算的相關的概念,及運算方法,包括:集合的交集、集合的並集、集合的差集、集合的對稱差集、集合的交集運算方法、集合的並集運算方法、集合的差集運算方法、集合的對稱差集運算方法。
在Python中,集合最常用的操作就是進行交集、並集、差集和對稱差集的運算。
要想學習集合的交集、並集、差集和對稱差集運算方法,首先我們來了解這些名詞的含義:
設A、B兩個集合,由所有屬於集合A且屬於集合B的元素所組成的集合,叫做集合A與集合B的交集。在Python中,進行交集運算時使用「&」符號。
給定兩個集合A、B,把他們所有的元素合並在一起組成的集合,叫做集合A與集合B的並集。在Python中,進行並集運算時使用「|」符號。
設A,B是兩個集合,則所有屬於A且不屬於B的元素構成的集合,叫做集合A與集合B的差集。在Python中,進行差集運算時使用「-」符號。
對稱差集也稱為對稱差分或者補集,設A,B是兩個集合,所有不相同的集合,叫做集合A與集合B的對稱差集(對稱差分或者補集)。在Python中,進行對稱差集運算時使用「^」符號。
上面都是概念性的描述,下面站長在線來舉實際的場景來對交集、並集、差集和對稱差集運算方法進行深入淺出的解讀。
場景模擬:某高中三年級,文科班高考的科目是語文、數學、英語、政治、 歷史 和地理。理科班高考的科目是語文、數學、英語、物理、化學和生物。
設定集合A為文科班高考的科目,集合B為理科班高考的科目。
A = {'語文','數學','英語','政治',' 歷史 ','地理'}
B = {'語文','數學','英語','物理','化學','生物'}
我們使用集合的交集運算的時候可以採用兩種方式,一種是使用「&」運算符進行操作,另一種是使用 intersection() 方法來實現。
運行結果:
運行結果:
同理集合B和集合A的交集也是一樣。我這里就不重復了,自己去體驗一下。
集合的並集運算也有兩種方式,一種是使用「|」運算符進行操作,另一種是使用union()方法來實現。
運行結果如下:
運行結果為:
同理集合B和集合A的並集也是一樣。自己去體驗一下吧!
集合的差集運算也有兩種方式,一種是使用「-」運算符進行操作,另一種是使用difference()方法來實現。
運行結果為:
上面是集合A和集合B的差集,但是集合B和集合A的差集就不是一樣的了哦!
運行結果為:
從上面可以看出,集合A和集合B的差集 與 集合B和集合A的差集是不一樣的,(A - B)是A中存在的部分,(B - A)是B中存在的部分。
運行結果:
同理,使用difference()方法進行集合B和集合A的差集也是不同的
運行結果:
集合的差集運算也有兩種方式,一種是使用「^」運算符進行操作,另一種是使用symmetric_difference()方法來實現。
運行結果為:
運行結果為:
同樣的,集合B與集合A的對稱差集也是一樣,自己去體驗一下。
我們對集合的交集、並集、差集和對稱差集運算方法全部詳細的講解了一遍,通過運行結果,我們得出結論:
集合中進行交集、並集、對稱差集進行運算的時候,集合A與集合B,位置替換的時候,結果相同。
集合中進行差集運算的時候,集合A與集合B,位置替換的時候,結果不同,為前面那個集合獨立存在的部分。
到此為止,本節課的內容《Python中集合的交集、並集、差集和對稱差集運算方法詳解》就完全講完了,主要講的集合運算的相關的概念,及運算方法,包括:集合的交集、集合的並集、集合的差集、集合的對稱差集、集合的交集運算方法、集合的並集運算方法、集合的差集運算方法、集合的對稱差集運算方法。
⑵ Python基礎實戰之集合元素的添加和刪除
集合元素的添加操作有兩種方法:
1、調用add()方法,一次添加一個元素
2、調用update()方法,至少添加一個元素
------------------------------
s={10,20,40,80}
s.add(30) #一次添加一個元素
print(s) #{10,30,20,40,80}
s.updae({200,300,400}) #一次至少添加一個元素
print(s) #{200,10,300,20,400,30,80,40}
s.update([800,900]) #可以添加列表
s.update((45,55)) #可以添加元組
print(s) #{200,5510,45,300,800,20,900,400,30,80,40}
------------------------------
集合元素的刪除操作
1、調用remove()方法,一次刪除一個指定元素,如果指定的元素不存在拋出KeyError
2、調用discard()方法,一次刪除一個指定元素,如果指定的元素不存在不拋異常
3、調用pop()方法,一次只刪除一個任意元素
4、調用clear()方法,清空集合
------------------------------
s.remove(200) #一次刪除一個指定元素,如果指定的元素不存在拋出KeyError
print(s) #{55,10,45,300,800,20,900,400,30,80,40}
s.discard(900) #一次刪除一個指定元素,如果指定的元素不存在不拋異常
print(s) #{55,10,45,300,800,20,400,30,80,40}
s.pop() #刪除誰不知道,任意一個元素
print(s) #{55,10,45,800,20,400,30,80,40}
s.clear() #清空集合中的所有元素
print(s) #set()
⑶ python集合的使用怎麼樣的
Python set 集合最常用的操作是向集合中添加、刪除元素,以及集合之間做交集、並集、差集等運算。
向set集合中添加元素
set 集合中添加元素,可以使用 set 類型提供的 add() 方法實現,該方法的語法格式為:
1
setname.add(element)
其中,setname 表示要添加元素的集合,element 表示要添加的元素內容。
需要注意的是,使用 add() 方法添加的元素,只能是數字、字元串、元組或者布爾類型(True 和 False)值,不能添加列表、字典、集合這類可變的數據,否則 Python 解釋器會報 TypeError 錯誤。例如:
1
2
3
4
5
a = {1,2,3}
a.add((1,2))
print(a)
a.add([1,2])
print(a)
運行結果為:
1
2
3
4
5
{(1, 2), 1, 2, 3}
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 4, in
a.add([1,2])
TypeError: unhashable type: 'list'
從set集合中刪除元素
刪除現有 set 集合中的指定元素,可以使用 remove() 方法,該方法的語法格式如下:
1
setname.remove(element)
使用此方法刪除集合中元素,需要注意的是,如果被刪除元素本就不包含在集合中,則此方法會拋出 KeyError 錯誤,例如:
1
2
3
4
5
a = {1,2,3}
a.remove(1)
print(a)
a.remove(1)
print(a)
運行結果為:
1
2
3
4
5
{2, 3}
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 4, in
a.remove(1)
KeyError: 1
⑷ python數據類型(集合)
1.集合(set)是一個無序不重復元素的序列(意思是有重復的會自動刪除,每次列印元素的位置不一定)
2.基本功能是進行成員關系測試和刪除重復元素
3.可以使用大括弧 { } 或者 set() 函數創建集合,注意:創建一個空集合必須用 set() 而不是 { },因為 { } 是用來創建一個空字典
4.因為set存儲的是無序集合,所以我們沒法通過索引來訪問。訪問 set中的某個元素實際上就是判斷一個元素是否在set中。
1.創建集合
s=set()#創建一個空集合
s1={1,2,3,'a','python'}
2.刪除重復的元素
集合是一個無序不重復元素的序列(意思是有重復的會自動刪除,每次列印元素的位置不一定)
3.成員關系測試(檢測某個成員是否在集合中)
案例:從終端輸入5位數,以空格隔開,把這5位數存入列表中,剔除重復的數據,列印出來
#提示,列表轉集合,集合轉列表
a=input("請輸入5位數字:")
mylist=a.split()
print(mylist)
b=set(mylist)
c=list(b)
print(c)
4.集合常用操作
1.添加元素
2.刪除元素
3.刪除整個集合
4.獲取集合的長度
5.不支持改元素
集合操作-添加元素
格式:
集合.add(元素)
格式:
集合.update(元素)
區別:
add不能添加列表,update可以
update是將字元串中的拆分成字元進行追加
add,是當做整體追加在集合中
#案例:從終端輸入一個數字就加入集合中,然後列印,又輸入一個數字,然後列印,直到輸入-1,退出輸入
#然後列印最終的集合
ms=set()
while 1:
a=int(input("請輸入一個數字:"))
if a==-1:
break
ms.add(a)
print(ms)
print(ms)
#案例:從終端輸入一個字元串就加入集合中,然後列印,又輸入一個字元串,然後列印,直到輸入q,退出輸入
#然後列印最終的集合,字元串要分開存儲,如輸入hello,存儲的列表是{'h','e','l','0'}
ms=set()
while 1:
a=input("請輸入一個字元串:")
if a=='q':
break
ms.update(a)
print(ms)
print(ms)
集合操作-刪除元素及刪除整個集合
格式:
集合.remove(元素) # 元素如果不存在會引發KeyError
集合.discard(元素) # 元素如果不存在不發生任何事
集合.pop() # 集合元素是字元串類型時刪除隨機元素。 集合元素是其他數據類型時,刪除左邊第一個元素
del 集合名 #刪除整個集合
#案例:有集合{1,2,3,'hello','world'},刪除全部字元串,然後最左邊第一個元素
a={1,2,3,'hello','world'}
a.discard("hello")
a.discard("world")
a.pop()
print(a)
集合操作-獲取集合的長度
格式:
len(集合名)
#案例:有集合{1,2,3,4,'hello','a'},保留1個元素,其他的刪除,假如元素個數不確定
s={1,2,3,4,'hello','a'}
for i in range(len(s)-1):
s.pop()
print(s)
集合的集運算
集合的交集,並集,差集,對稱差集的運算
{1,2,3,4}交集{4,5,6,7} -->4 交集(&)
{1,2,3,4}並集{4,5,6,7} ->1,2,3,4,5,6,7 並集(|)
{1,2,3,4}差集{4,5,6,7} ->1,2,3 差集(-)
{1,2,3,4}對稱差集{4,5,6,7}->1,2,3,5,6,7 4同時出現在兩個集合中,不選它 對稱差集(^)
#案例:使用花括弧和set創建各一個集合,然後對集合進行交、並、差、對稱差運算
s={1,2,3,4,5,6}
s1=set([6,7,8,9,10])
print(s&s1)
print(s|s1)
print(s-s1)
print(s^s1)