集合是一個無序的,不重復(fù)的數(shù)據(jù)組合,它的主要作用如下:
- 去重,把一個列表變成集合,就自動去重了
- 關(guān)系測試,測試兩組數(shù)據(jù)之前的交集、差集、并集等關(guān)系
s = set ([3, 5, 9, 10]) # 創(chuàng)建一個數(shù)值集合
t = set ("Hello") # 創(chuàng)建一個唯一字符的集合
a = t | s # t 和 s的并集
b = t & s # t 和 s的交集
c = t - s # 求差集(項(xiàng)在t中,但不在s中)
d = t ^ s # 對稱差集(項(xiàng)在t或s中,但不會同時出現(xiàn)在二者中)
基礎(chǔ)功能
List = [1,2,5,6,8]
List = set(list) # 把list設(shè)置為集合;只要設(shè)置為集合,則會自動去重;
xx = set(('apple','pear')) # 創(chuàng)建一個含有多個元素的集合
print(xx)
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket) # 這里演示的是去重功能
# 增
basket.add('Love') # 集合中沒有insert;
basket.update('Aa','Bb') # 參數(shù)可以是列表,元組,字典
basket.update( {"字符串"} ) # 將字符串添加到集合中。
basket.update( "字符串" ) # 將字符串拆分單個字符后,然后再一個個添加到集合中,有重復(fù)的會忽略。
# 刪
#basket.remove('Aa') # 如果元素不存在,則會發(fā)生錯誤
basket.discard("Aa") # 如果元素不存在,不會發(fā)生錯誤discard,丟棄;
basket.pop() # 隨機(jī)刪除一個元素
basket.clear() # 清空集合
# 查
print(len(basket)) # 返回集合的長度
# 判斷
print('a' in basket) # 'a' not in basket
集合操作
s = set([1,3,5,7])
t = set([2,3,4,5])
# 集合的并集
print(t | s) # t和s的并集
print(t.union(s))
# 集合的交集
print(set1.intersection(set2))
print(set1 & set2)
print(set1.isdisjoint(set2)) # 判斷兩個集合是否有交集,有則返回true;沒有則返回false
# 集合的差集(補(bǔ)集)
print(set1.difference(set2)) #set1里有,set2里沒有
print(set1-set2)
print(set2.difference(set1)) #set2里有,set1里沒有
print(set2-set1)
# 集合的對稱差集
print(set1.symmetric_difference(set2))#我有你沒有的 加上 你有我沒有的
print(set1^set2)
# 集合的子集
set3=set([4,5])
print(set3.issubset(set1)) #判斷set3是否為set1的子集
print(set1.issuperset(set3)) #判斷set1是否包含set3
集合遍歷
# 集合遍歷
# 注意:set沒有索引!
for index,i in enumerate(set7): //遍歷
print(index,i)
集合生成式
語法: { 表達(dá)式 for 迭代變量 in 可迭代對象 [if 條件表達(dá)式] }
集合推導(dǎo)式和字典推導(dǎo)式的格式完全相同,那么給定一個類似的推導(dǎo)式,如何判斷是哪種推導(dǎo)式呢?最簡單直接的方式,就是根據(jù)表達(dá)式進(jìn)行判斷, 如果表達(dá)式以鍵值對(key:value)的形式,則證明此推導(dǎo)式是字典推導(dǎo)式 ;反之,則是集合推導(dǎo)式。
# 集合元素的唯一性
tupledemo = (1,1,2,3,4,5,6,6)
setnew = {x**2 for x in tupledemo if x%2==0}
print(setnew)
# 輸出:{16, 4, 36}
# 集合元素的無序性
dictdemo = {'1':1,'2':2,'3':3}
setnew = {x for x in dictdemo.keys()}
print(setnew)
# 輸出:{'2', '1', '3'}
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
