前言
Python中的數(shù)據(jù)結(jié)構(gòu)馬上就要結(jié)束了,今天我們來(lái)學(xué)習(xí)Python中六大數(shù)據(jù)結(jié)構(gòu)的最后一部分集合,堅(jiān)持就是勝利go!
一、集合是什么?
集合是一種數(shù)據(jù)類型,用于存儲(chǔ)一組唯一的元素。集合可以通過(guò)花括號(hào){}
來(lái)定義,元素之間使用逗號(hào)分隔。與列表和元組不同,集合中的元素是無(wú)序的,且不允許重復(fù)。
語(yǔ)法:語(yǔ)法:set()/{元素,元素2}
集合具備三個(gè)特點(diǎn)
:
1.元素必須是不可變類型(字符串 數(shù)值 元祖)
2.唯一性 自動(dòng)去重
3.無(wú)序(沒(méi)有索引,沒(méi)有辦法通過(guò)索引對(duì)集合進(jìn)行修改和查詢的操作)
代碼演示:
s = {1, 1.5, 'a', 'c', 'c', 'a'}
print(s) # 每次輸出的順序不一樣,并且會(huì)自動(dòng)去重 {1, 'a', 1.5, 'c'}
二、集合的常見操作
1.創(chuàng)建空集合
1.1 集合.add():添加元素,整體添加
# 因?yàn)榧虾妥值涞姆?hào)相同,所以創(chuàng)建集合的時(shí)候要特別注意
se = {} # 空字典
se1 = set() # 空集合
2.基本操作
2.1 增
2.1.1 集合.add():添加元素,整體添加
代碼演示:
se = {1, 2, 3}
se.add('abc')
print(se) # {1, 2, 3, 'abc'}
2.1.2 集合.update(可迭代對(duì)象):添加元素,分散添加
代碼演示:
se = {1, 2, 3}
se.update('abc')
print(se)
# se.update('e', 'f', 2, 9) # TypeError: 'int' object is not iterable
se.update('e', 'f', [9, 6, 5]) # 添加是可迭代對(duì)象,注意里面不能再有列表
print(se)
# 注意:只能添加不可變類型,列表、元組、字典等
2.2 刪
2.2.1 remove():刪除指定的元素,如果集合會(huì)有就會(huì)刪除,沒(méi)有就會(huì)報(bào)錯(cuò)
代碼演示:
se = {1, 2, 3}
se.remove(1)
print(se) # {2, 3}
2.2.2 discard() 刪除指定的元素,有就會(huì)刪除,沒(méi)有就不會(huì)發(fā)生任何改變,不會(huì)報(bào)錯(cuò)
代碼演示:
se = {1, 2, 3}
se.discard(1)
print(se) # {2, 3}
2.2.3 pop() 刪除并返回任意一個(gè)元素,如果集合為空,則引發(fā) KeyError 異常
語(yǔ)法:set.pop()
參數(shù): 該函數(shù)不接受任何參數(shù)。
代碼演示:
set1 = {'a', 'b', 'c', 'd'}
answer = set1.pop()
print(answer) # d
print(set1) # {'b', 'a', 'c'}
2.2.4 clear() 方法刪除集合中的所有元素:
代碼演示:
set1 = {'a', 'b', 'c', 'd'}
set1.clear()
print(set1) # set()
3.成員運(yùn)算符(in; not in)
這個(gè)之前用過(guò)好多次了,就不再重復(fù)了
4.計(jì)算集合的長(zhǎng)度——len()
代碼演示:
se = {1, 2, 3}
print(len(se)) # 3
5.復(fù)制集合——copy()
代碼演示:
se = {1, 2, 3}
new_se = se.copy()
6.集合的集合運(yùn)算
6.1 并集:union() 方法或 | 運(yùn)算符:
set1.union(set2) 或 set1 | set2
代碼演示:
set1 = {'a', 'b', 'c', 'd'}
set2 = {'b', 'c', 'd', 'f'}
print(set1 | set2) # {'c', 'd', 'b'}
6.2 交集:intersection() 方法或 & 運(yùn)算符:
set1.intersection(set2) 或 set1 & set2
代碼演示:
set1 = {'a', 'b', 'c', 'd'}
set2 = {'b', 'c', 'd', 'f'}
print(set1 & set2) # {'c', 'f', 'd', 'b', 'a'}
6.3 差集:difference() 方法或 - 運(yùn)算符:集合a中有的但是集合b中沒(méi)有的
set1.difference(set2) 或 set1 - set2
代碼演示:
set1 = {'a', 'b', 'c', 'd'}
set2 = {'b', 'c', 'd', 'f'}
print(set1 - set2) # {'a'}
6.4 對(duì)稱差集:symmetric_difference() 方法或 ^ 運(yùn)算符:set1.symmetric_difference(set2) 或 set1 ^ set2
代碼演示:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-834670.html
set1 = {'a', 'b', 'c', 'd'}
set2 = {'b', 'c', 'd', 'f'}
print(set1 ^ set2) # {'f', 'a'}
總結(jié)
歷經(jīng)將近兩個(gè)星期的學(xué)習(xí),關(guān)于python中的數(shù)據(jù)結(jié)構(gòu)我們終于學(xué)完了,這也算是python中最基礎(chǔ)的東西,打好基礎(chǔ),邁出了這一步,我們就能夠在未來(lái)學(xué)習(xí)更加深?yuàn)W的東西,讓我們一起繼續(xù)學(xué)習(xí)吧!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-834670.html
到了這里,關(guān)于Python課堂12——六大數(shù)據(jù)結(jié)構(gòu)之集合的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!