【人生苦短,我學 Python】基礎篇——集合(Day11)
寫在前面:大家好!我是【AI 菌】,一枚愛彈吉他的程式設計師。我
熱愛AI、熱愛分享、熱愛開源
! 這部落格是我對學習的一點總結與記錄。如果您也對深度學習、機器視覺、演算法、Python、C++
感興趣,可以關注我的動態,我們一起學習,一起進步~
我的部落格地址為:【AI 菌】的部落格
我的Github專案地址是:【AI 菌】的Github
文章目錄
一、集合
(1) 集合介紹
集合(set)是一個無序的不重複元素序列,這和數學中的集合概念類似。在Python中,可以使用大括號 { } 或者 set() 函式建立集合。
需要注意的是:建立一個空集合必須用 set() 而不是 { }, 因為 { } 是用來建立一個空字典。
(2) 建立集合
1、由於{ } 是用來建立一個空字典。所以建立一個空集合,只能通過set()來建立,演示如下:
a = set()
2、建立一個普通集合,直接用大括號{}來建立,演示如下:
a = {1, 2, 3, 4, 5}
print(a)
輸出結果:
{1 , 2, 3, 4, 5}
除此之外,也可以通過set()來建立:
b = set("abc121")
print(b)
輸出結果:
{'b', '1', '2', 'c', 'a'}
輸出的元素順序和建立時的順序不同。可見,集合裡的元素是無須的,並且是不可重複的。
(3) 集合運算
下面來演示兩個集合間的不同運算:.
a = set("ac123")
b = set("abc121")
print(a)
print(b)
print("集合a中包含而集合b中不包含的元素:", a - b)
print("集合a或b中包含的所有元素:" , a | b)
print("集合a和b中都包含了的元素:", a & b)
print("不同時包含於a和b的元素", a ^ b)
輸出結果如下:
{'1', 'a', 'c', '3', '2'}
{'1', 'a', 'c', 'b', '2'}
集合a中包含而集合b中不包含的元素: {'3'}
集合a或b中包含的所有元素: {'1', 'a', 'c', '3', 'b', '2'}
集合a和b中都包含了的元素: {'c', '1', 'a', '2'}
不同時包含於a和b的元素 {'3', 'b'}
二、集合的基本操作
(1) 新增元素
向已有集合中新增新的元素,有以下兩種方式:
1、使用 set.add(x) 向集合中新增新個元素x,演示如下:
a = {1, 2, 3}
a.add(6)
print(a)
輸出結果:
{1, 2, 3, 6}
注:如果元素已存在,則不進行任何操作。
2、使用方法set.update(x)也可以新增元素,且引數可以是列表,元組,字典等,演示如下:
a = {"a", "b", "c"}
a.update({"d", "e"})
print(a)
輸出結果:
{'b', 'c', 'd', 'e', 'a'}
除此之外,新增的元素也可以是列表、元組等:
a = {"a", "b", "c"}
a.update((1, 2), (3, 4))
print(a)
輸出結果:
{1, 'b', 2, 3, 4, 'c', 'a'}
(2) 刪除元素
刪除集合中的元素,有以下三種方式:
1、使用方法set.remove(x)將集合中元素x刪除,演示如下:
a = {"a", "b", "c"}
a.remove("b")
print(a)
輸出結果:
{'c', 'a'}
注:如果刪除的元素不存在,則會發生報錯。
2、使用set.discard()也可刪除集合中的元素,且如果元素不存在,不會發生錯誤。演示如下:
a = {"a", "b", "c"}
a.discard("b")
print(a)
輸出結果:
{'a', 'c'}
3、也可以通過set.pop()隨機刪除集合中的一個元素,演示如下:
a = {"a", "b", "c"}
a.pop()
print(a)
輸出結果:
{'a', 'b'}
注:由於是隨機刪除,所以每次輸出的結果可能不一樣
(3) 判斷元素是否在集合中
使用語法:x in set
,可以判斷元素 x 是否在集合 set 中,存在返回 True,不存在則返回 False。演示如下:
set1 = {"a", "b", "c"}
if "b" in set1:
print("b存在集合中")
else:
print("b不存在集合中")
輸出結果:
b存在集合中
三、集合內建函式
在Python集合中,提供了一些內建的函式和方法,極大地方便了開發者處理集合相關的資料,下面總結了一些常用的集合內建函式,如下表所示:
函式 | 功能描述 |
---|---|
set.add(x) | 為集合新增元素 |
set.update(x) | 為集合新增元素(列表、元組、字典) |
set.remove(x) | 刪除集合中的元素x |
set.discard(x) | 刪除集合中的元素x |
set.pop() | 隨機刪除集合中的一個元素 |
set.clear() | 清空集合,使之成為一個空集合 |
set.copy() | 拷貝一個集合 |
set.intersection(set1, set2 … etc) | 返回兩個或更多集合中都包含的元素,即交集 |
set.union(set1, set2…) | 返回兩個集合的並集,即包含了所有集合的元素 |
set1.difference(set2) | 計算集合set1與集合set2的差集 |
由於水平有限,部落格中難免會有一些錯誤,有紕漏之處懇請各位大佬不吝賜教!