小白學 Python(15):基礎數據結構(集合)(下)

人生苦短,我選Python

前文傳送門python

小白學 Python(1):開篇git

小白學 Python(2):基礎數據類型(上)github

小白學 Python(3):基礎數據類型(下)數據結構

小白學 Python(4):變量基礎操做spa

小白學 Python(5):基礎運算符(上)code

小白學 Python(6):基礎運算符(下)blog

小白學 Python(7):基礎流程控制(上)rem

小白學 Python(8):基礎流程控制(下)get

小白學 Python(9):基礎數據結構(列表)(上)it

小白學 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

示例代碼-Gitee

若是個人文章對您有幫助,請掃碼關注下做者的公衆號:獲取最新干貨推送:)

相關文章
相關標籤/搜索