零基础入门Python3-set集合详解
零基礎(chǔ)入門Python3-set集合
一、set集合
1、創(chuàng)建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進行創(chuàng)建
a=set([1,2,3,4,5,6])
print(type(a))
print(a)
>>>????<class 'set'>
???????????{1, 2, 3, 4, 5, 6}
# 實例3,使用str進行創(chuàng)建
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 對傳入的數(shù)據(jù)不會進行拆解
????變量 . update()
????# update 會對傳入的數(shù)據(jù)進行拆解
# 實例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中的元素是不容許有重復(fù)出現(xiàn)的。
# 實例
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 轉(zhuǎn)換成 set 的時候,set自動刪除重復(fù)的元素。
?
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 中不重復(fù)的元素
# 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}
# 所有集合的運算結(jié)果返回的都是 set 類型。
# 8 ? ?set 的淺復(fù)制
d=a.copy()
print(d)
>>>????{1,2,3,4,5,6}
# 9????set的深復(fù)制,暫且不談,以后會提到?
關(guān)注公眾號,了解更多!
轉(zhuǎn)載于:https://www.cnblogs.com/pyshadow/p/10400280.html
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的零基础入门Python3-set集合详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java高级----Thread之Sch
- 下一篇: websocket python爬虫_p