溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中如何使用集合set

發布時間:2021-10-29 13:06:13 來源:億速云 閱讀:168 作者:小新 欄目:開發技術

小編給大家分享一下Python中如何使用集合set,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

集合 (set)

1、由不同的元素組成,用{ }大括號括起來,用,逗號隔開

2、無序的

3、集合中的元素必須是比可變類型

4、集合會自動去重

例如:s = {1,2,3,4,5,6} #這就是一個集合

5、合集是可變的 但是可以通過參數frozenset變成不可變的集合

s = {1,'2',3,4,5,6}
print(s) #{'2', 1, 3, 4, 5, 6}
a = frozenset(s) #不可變
print(a) #frozenset({'2', 1, 3, 4, 5, 6})

一 、合集的一些常用命令

1、set 定義合集

s = set('adam')
print(s) #{'m', 'a', 'd'}

可以看到輸出結果是 亂序的 而且 已經去重了,并且它已經把原來的字符串 打散到了最小單位

2、add 添加元素

s = {1,2,3,4,5,6}
s.add('3') #添加了一個str類型的 3
print(s) #{1, 2, 3, 4, 5, 6, '3'}
s.add(('4', 'a', 'b', 'c'))
print(s) #{1, 2, 3, 4, 5, 6, ('4', 'a', 'b', 'c'), '3'}

1、如果添加的是的集合里面原本就含有的元素,那么就會被自動去重

2、被添加的元素是 被亂序放入的 也就是說集合本身是亂序的

3、如果被添加的是 多個元素 那么 集合會把他們視為一個元素 打包插入,只有元祖可以插入,列表和字典不行

3、clear 清空

s = {1,2,3,4,5,6}
s.clear()
print(s) #set()

4、pop 隨機刪除一個元素

s = {1,2,3,4,5,6,7}
s.pop()
print(s) #{2, 3, 4, 5, 6, 7}

5、remove 指定刪除

s = {1,2,3,4,5,6}
s.remove(3)
print(s) #{1, 2, 4, 5, 6}

PS:找不到匹配要刪除的字符就會報錯

6、discard 指定刪除

s = {1,2,3,4,5,6}
s.discard(7)
print(s) #{1, 2, 3, 4, 5, 6}

PS:找不到匹配要刪除的字符不會報錯

二、關系運算

1、交集 找到兩個集合相同的元素

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,'2',3,'m', 'd'}
print(s&s1) #{1, 3, 'd', 'm'}
print(s.intersection(s1)) #{1, 3, 'd', 'm'}

& 是運算符號, intersection 是運算命令他們的結果是一樣的

2、并集 合并兩個集合

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,'2',3,'m', 'd'}
print(s|s1) #{1, 2, 3, 'm', '2', 'd', 'a'}
print(s.union(s1)) #{1, 2, 3, 'm', '2', 'd', 'a'}

| 豎是運算符號,union 是運算命令他們的結果是一樣的

3、差集 保留前者與后者不同的元素 去除相同的元素

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,'2',3,'m', 'd'}
print(s - s1) #{'a', 2}
print(s1.difference(s)) #{'2'}

- 減號是運算符號,difference 是運算命令他們的結果是一樣的

由于前后兩次 兩個 集合被比較的 關系對調了 所以 結果兩次輸出的結果也不同

4、交叉補集 只保留兩者不同的部分

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,'2',3,'m', 'd'}
print(s ^ s1) #{2, '2', 'a'}
print(s1.symmetric_difference(s)) #{2, '2', 'a'}

^ 是運算符號,symmetric_difference是運算命令他們的結果是一樣的

5、isdisjoint 判斷是否有交集返回布爾值

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,'2',3,'m', 'd'}
s2 = {15,22}
print(s1.isdisjoint(s2)) #True
print(s1.isdisjoint(s)) #False

沒有交集就返回 True 有交集就返回False

6、issubset判斷后者是否包含前者 返回布爾值

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,2,3,'m', 'd'}
s2 = {15,22,1}
print(s1.issubset(s2)) #False
print(s1.issubset(s)) #True

如果后者包含前者 則返回 True 如果后者不完全包含前者 則返回 False

7、issuperset判斷前者是不是完全包含后者,返回布爾值

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,2,3,'m', 'd'}
s2 = {15,22,1}
s3 ={1,2,3,'m', 'a', 'd'}
print(s.issuperset(s2)) #False
print(s.issuperset(s1)) #True
print(s.issuperset(s3)) #True

前者完全包含后者 則 返回 True 沒有完全包含后者則返回False 前后兩者相等也是True

8、update 更新

s = {1,2,3,'m', 'a', 'd'}
s3 ={1,2,3,'m', 'a', 'd'}
s1 ={1,2,3,'m', 'd'}
s2 = {15,22,1}
s.update(s3)
print(s) #{1, 2, 3, 'a', 'm', 'd'}
print(s3) #{1, 2, 3, 'd', 'm', 'a'}
s1.update(s2)
print(s1) #{1, 2, 3, 'm', 22, 'd', 15}
print(s2) #{1, 22, 15}

把后者的元素 更新到前者內

PS:

訪問方式

直接 訪問:數字

順序訪問:字符串、列表、元祖

映射(keys):字典

字典的查詢速度最快 但是字典占內存會比較高

存放元素個數:

容器類(存放多個值):列表、元祖、字典

原子類(只能存放一個值):數字、字符串

看完了這篇文章,相信你對“Python中如何使用集合set”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女