小白學 Python(15):基礎資料結構(集合)(下)
人生苦短,我選Python
前文傳送門
小白學 Python(1):開篇
小白學 Python(2):基礎資料型別(上)
小白學 Python(3):基礎資料型別(下)
小白學 Python(4):變數基礎操作
小白學 Python(5):基礎運算子(上)
小白學 Python(6):基礎運算子(下)
小白學 Python(7):基礎流程控制(上)
小白學 Python(8):基礎流程控制(下)
小白學 Python(9):基礎資料結構(列表)(上)
小白學 Python(10):基礎資料結構(列表)(下)
小白學 Python(11):基礎資料結構(元組)
小白學 Python(12):基礎資料結構(字典)(上)
小白學 Python(13):基礎資料結構(字典)(下)
小白學 Python(14):基礎資料結構(集合)(上)
集合內建方法
集合和列表、字典、元組等一樣,都提供了很多的內建方法。
既然是集合,那我們先看下這張經典的韋恩圖(Venn diagram):
具體的實現程式碼如下:
set1 = {1, 2, 3, 4, 5, 6} set2 = {4, 5, 6, 7, 7, 9} # 求交集 set3 = set1.intersection(set2) print('交集:', set3) # 求並集 set4 = set1.union(set2) print('並集:', set4) # 做差 set5 = set1.difference(set2) print('做差:', set5)
結果如下:
交集: {4, 5, 6}
並集: {1, 2, 3, 4, 5, 6, 7, 9}
做差: {1, 2, 3}
set.add()
作用:為集合新增元素
set6 = {1, 2, 3}
set6.add(4)
print(set6)
set6.add('python')
print(set6)
set6.add((1, 2))
print(set6)
結果如下:
{1, 2, 3, 4}
{1, 2, 3, 4, 'python'}
{(1, 2), 1, 2, 3, 4, 'python'}
set.update()
作用:給集合新增元素
set7 = {1, 2}
set7.update({3, 4, 'python', (4, 5)})
print(set7)
結果如下:
{1, 2, 3, 4, 'python', (4, 5)}
好像看起來 update()
和 add()
功能是一樣的,區別在於 add()
引數只能是單個元素,而 update()
中的引數是一個 set 集合。
set.pop()
作用:隨機移除元素。
set7.pop()
print(set7)
結果如下:
{2, 3, 4, 'python', (4, 5)}
隨機刪除,個人感覺功能可能有點沒什麼實際作用,畢竟是隨機刪除。。。
set.remove()
作用:移除指定元素。
相比較上面 pop()
的隨機刪除,在刪除元素的時候更多的我們是使用的 remove()
或者下面我們將要介紹的 discard()
。
set8 = {1, 2, 3, 4}
set8.remove(4)
print(set8)
結果如下:
{1, 2, 3}
如果刪除的元素不存在,則會直接報錯。
set8.remove(9)
結果如下:
Traceback (most recent call last):
File "F:/project/python-learning/base-data-set/Demo1.py", line 34, in <module>
set8.remove(9)
KeyError: 9
set.discard()
作用:刪除集合中指定的元素,元素不存在則什麼都不做。
set8.discard(9)
print(set8)
結果如下:
{1, 2, 3}
set.clear()
作用:清除集合中的所有元素,並不會清除集合。
set9 = {1, 2, 3}
set9.clear()
print(set9)
結果如下:
set()
set.isdisjoint()
作用:判斷兩個集合是否包含相同的元素,如果沒有返回 True,否則返回 False。
set10 = {1, 2, 3}
set11 = {1, 2}
set12 = {4, 5}
print(set10.isdisjoint(set11))
print(set10.isdisjoint(set12))
結果如下:
False
True
set.issubset()
作用:判斷指定集合是否為該方法引數集合的子集。
print(set11.issubset(set10))
print(set12.issubset(set10))
結果如下:
True
False
set.issuperset()
作用:判斷該方法的引數集合是否為指定集合的子集。
print(set10.issuperset(set11))
print(set10.issuperset(set12))
結果如下:
True
False
注意哦, issubset()
和 issuperset()
是不一樣的哦,看起來都是判斷子集,但是引數的含義是不一樣的。
各位同學一定要自己動手敲程式碼哦~~
示例程式碼
本系列的所有程式碼小編都會放在程式碼管理倉庫 Github 和 Gitee 上,方便大家取用。
示例程式碼-Github
示例程式碼-Gi