訂閱
糾錯(cuò)
加入自媒體

Python:什么是集合?集合常用操作有哪些?

大家好,我是IT共享者,人稱(chēng)皮皮。今天給大家來(lái)捋一捋Python集合。

一、什么是集合?

集合(set)和字典(dict)類(lèi)似,它是一組 key 的集合,但不存儲(chǔ) value。集合的特性就是:key 不能重復(fù)。

二、集合常用操作

1. 創(chuàng)建集合

set 的創(chuàng)建可以使用 {} 也可以使用 set 函數(shù):

s1 = {'a', 'b', 'c', 'a', 'd', 'b'}  # 使用 {}print(s1)(['a', 'c', 'b', 'd'])
s2 = set('helloworld')  # 使用 set(),接收一個(gè)字符串print(s2)set(['e', 'd', 'h', 'l', 'o', 'r', 'w'])s3 = set(['.mp3', '.mp4', '.rmvb', '.mkv', '.mp3'])  # 使用 set(),接收一個(gè)列表print(s3)set(['.mp3', '.mkv', '.rmvb', '.mp4'])

2. 遍歷集合s = {'a', 'b', 'c', 'a', 'd', 'b'}for e in s:    print(e)

3. 添加元素

add() 方法可以將元素添加到 set 中,可以重復(fù)添加,但沒(méi)有效果。

s = {'a', 'b', 'c', 'a', 'd', 'b'}print(s)set(['a', 'c', 'b', 'd'])s.a(chǎn)dd('e')print(s)set(['a', 'c', 'b', 'e', 'd'])s.a(chǎn)dd('a')print(s)set(['a', 'c', 'b', 'e', 'd'])s.a(chǎn)dd(4)print(s)set(['a', 'c', 'b', 4, 'd', 'e'])

4. 刪除元素

remove() 方法可以刪除集合中的元素, 但是刪除不存在的元素,會(huì)拋出 KeyError,可改用 discard()。

例子:

s = {'a', 'b', 'c', 'a', 'd', 'b'}print(s)set(['a', 'c', 'b', 'd'])s.remove('a')  # 刪除元素 'a'print(s)set(['c', 'b', 'd'])s.remove('e')  # 刪除不存在的元素,會(huì)拋出 KeyError

s = {'a', 'b', 'c', 'a', 'd', 'b'}print(s)set(['a', 'c', 'b', 'd'])s.remove('a')  # 刪除元素 'a'print(s)set(['c', 'b', 'd'])s.discard('e')  # 刪除不存在的元素, 不會(huì)拋出 KeyError

三、交集/并集/差集

Python 中的集合也可以看成是數(shù)學(xué)意義上的無(wú)序和無(wú)重復(fù)元素的集合,因此,我們可以對(duì)兩個(gè)集合作交集、并集等。

看看例子:

s1 = {1, 2, 3, 4, 5, 6}s2 = {3, 6, 9, 10, 12}s3 = {2, 3, 4}print(s1 & s2 ) # 交集set([3, 6])print(s1 | s2)  # 并集set([1, 2, 3, 4, 5, 6, 9, 10, 12])print(s1 - s2)  # 差集set([1, 2, 4, 5])print(s3.issubset(s1))  # s3 是否是 s1 的子集
print(s3.issubset(s2))  # s3 是否是 s2 的子集
print(s1.issuperset(s3))  # s1 是否是 s3 的超集
print(s1.issuperset(s2))  # s1 是否是 s2 的超集

四、總結(jié)

本文主要介紹了Python的另外一種形式(集合),通過(guò)講解集合中如何去創(chuàng)建集合,遍歷集合,解釋了兩種常見(jiàn)的集合操作,添加元素和刪除元素。最后通過(guò)一個(gè)小項(xiàng)目,介紹了集合之間中的三種關(guān)系。希望能夠幫助大家更好的學(xué)習(xí)。


聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

    掃碼關(guān)注公眾號(hào)
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯(cuò)
    x
    *文字標(biāo)題:
    *糾錯(cuò)內(nèi)容:
    聯(lián)系郵箱:
    *驗(yàn) 證 碼:

    粵公網(wǎng)安備 44030502002758號(hào)