零基礎入門Python3-set集合
一、set集合
1、創建set集合
set(list or str or tuple)
# 實例1,傳入tuple
a=set((1,2,3,4,5,6))
print(type(a))
print(a)
>>> <class 'set'>
{1, 2, 3, 4, 5, 6}
# 實例2,傳入list進行創建
a=set([1,2,3,4,5,6])
print(type(a))
print(a)
>>> <class 'set'>
{1, 2, 3, 4, 5, 6}
# 實例3,使用str進行創建
a=set('python')
print(type(a))
print(a)
>>> <class 'set'>
{'o', 'p', 'n', 'y', 't', 'h'}
# 這里我們看到,輸出的set集合,字符串 'python'並不是按照順序進行排序的,也驗證了我們最開始的話。
2、set 的添加 和 刪除
(1)set 的添加
變量 . add(str or tuple)
# add 對傳入的數據不會進行拆解
變量 . update()
# update 會對傳入的數據進行拆解
# 實例1
a={1,2}
print(type(a),a)
a.add('python')
print(type(a),a)
>>> <class 'set'> {1, 2}
<class 'set'> {1, 2, 'python'}
# 實例2
a={1,2}
print(type(a),a)
a.update('python')
print(type(a),a)
>>> <class 'set'> {1, 2}
<class 'set'> {1, 2, 'y', 'o', 'n', 't', 'p', 'h'}
(2)set 的刪除
變量 . remove(元素) # 當元素不存在的時候,會報錯
變量 . discard(元素) # 當元素不存在的時候,不會報錯
# 實例1
b={1,2,3,'a','b','c'}
print(b)
b.remove('a')
print(b)
>>> {1, 'a', 2, 3, 'c', 'b'}
{1, 2, 3, 'c', 'b'}
# 用remove刪除元素的時候,如果元素不存在,那么就會報錯
# 實例2
b={1,2,3,'a','b','c'}
print(b)
b.discard(3)
print(b)
>>> {1, 2, 3, 'b', 'c', 'a'}
{1, 2, 'b', 'c', 'a'}
(3)set去重的特性
也就是set中的元素是不容許有重復出現的。
# 實例
a=[1,2,2,2,3,4,4,5,6,7,7]
print(a)
b=set(a)
print(b)
>>> [1, 2, 2, 2, 3, 4, 4, 5, 6, 7, 7]
{1, 2, 3, 4, 5, 6, 7}
# 當 list 轉換成 set 的時候,set自動刪除重復的元素。
3、集合
a={1,2,3,4,5,6}
b={4,5,6,7,8,9}
# 1 issubset 等同於 <=
print(a.issubset(b)) # 測試a中的每一個元素是否都在b中
print(a<=b) #這兩個表示的意思都是一樣的
>>> False
False
# 2 issuperset 等同於 >=
print(a.issuperset(b)) # 測試 b 的元素是否都在 a 中
print(a>=b)
>>> {1, 2, 3, 4, 5, 6, 7, 8, 9}
False
False
# 3 union 和 | 是並集的意思
print(a|b)
print(a.union(b))
>>> {1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3, 4, 5, 6, 7, 8, 9}
# 並集之后,set會對元素進行去重
# 4 intersection 和 & 是交集的意思
print(a.intersection(b))
print(a&b)
>>> {4, 5, 6}
{4, 5, 6}
# 交集就是兩個set的都有的元素
# 5 difference 和 —
print(a.difference(b))
print(a-b)
>>> {1, 2, 3}
{1, 2, 3}
# 返回 a 中有,而 b 中沒有的元素
# 6 symmetric_difference 和 ^
print(a.symmetric_difference(b))
print(a^b)
>>> {1, 2, 3, 7, 8, 9}
{1, 2, 3, 7, 8, 9}
# 返回 a 和 b 中不重復的元素
# 7 特別需要注意:
a={1,2,3,4,5,6}
b={4,5,6,7,8,9}
c=a|b
print(type(c))
print(c)
>>> <class 'set'>
{1, 2, 3, 4, 5, 6, 7, 8, 9}
# 所有集合的運算結果返回的都是 set 類型。
# 8 set 的淺復制
d=a.copy()
print(d)
>>> {1,2,3,4,5,6}
# 9 set的深復制,暫且不談,以后會提到

關注公眾號,了解更多!
