set數(shù)據(jù)結(jié)構(gòu)有哪些基礎(chǔ)知識(shí)?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
創(chuàng)新互聯(lián)長(zhǎng)期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為寧德企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,寧德網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
1、set數(shù)據(jù)結(jié)構(gòu)的概念
set(集合)是一組無重復(fù)無序的數(shù)據(jù),就像數(shù)學(xué)中集合的概念。它沒有標(biāo)準(zhǔn)的括號(hào)包裹,[]表示list,()表示tuple,{}表示dict。但是我們可以用帶值的大括號(hào)來定義。set數(shù)據(jù)結(jié)構(gòu)最大的作用就是去除重復(fù)的元素,如下所示:
set1 = {1, 2, 2, 3, 3, 3}
print(set1)
set1.add(1)
set1.add(4)
print(set1)
2、使用場(chǎng)景
set數(shù)據(jù)結(jié)構(gòu)在很多情況下?常有?,例如你可能想檢查列表中是否包含重復(fù)的元素,你有兩個(gè)選擇,第?個(gè)需要使?for循環(huán),就像這樣:
some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n']
duplicates = []
for value in some_list:
if some_list.count(value) > 1:
if value not in duplicates:
duplicates.append(value)
print(duplicates)
###輸出: ['b', 'n']
但還有?種更簡(jiǎn)單更優(yōu)雅的解決?案,那就是使?集合(sets),直接這樣做:
some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n']
duplicates = set([x for x in some_list if some_list.count(x) > 1]) print(duplicates)
###輸出: set(['b', 'n'])
3、數(shù)學(xué)運(yùn)算
(1)交集
你可以對(duì)?兩個(gè)集合的交集(兩個(gè)集合中都有的數(shù)據(jù)),如下:
valid = set(['yellow', 'red', 'blue', 'green', 'black']) input_set = set(['red', 'brown'])
print(input_set.intersection(valid))
###輸出: set(['red'])
(2)差集
你可以?差集(difference)找出?效的數(shù)據(jù),相當(dāng)于??個(gè)集合減去另?個(gè)集合的數(shù)據(jù),例如:
valid = set(['yellow', 'red', 'blue', 'green', 'black']) input_set = set(['red', 'brown'])
print(input_set.difference(valid))
###輸出: set(['brown'])
(3)用符號(hào)
a_set = {'red', 'blue', 'green'}
print(type(a_set))
###輸出:
看完上述內(nèi)容,你們掌握set數(shù)據(jù)結(jié)構(gòu)有哪些基礎(chǔ)知識(shí)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!