這章我們繼續(xù)來(lái)看集合的其他內(nèi)置方法。
還是先定義一個(gè)集合。
s= {1,2,3,4}
然后s點(diǎn),看有哪些內(nèi)置方法。
我們看到有個(gè)update,它的作用就是用一個(gè)新的集合來(lái)更新老集合,和字典一樣。這個(gè)參數(shù)可以是任意類型的可迭代對(duì)象,就是能被for循環(huán)的都可以。
字典、列表、元組、集合這幾個(gè)。
s= {1,2,3,4}
s.update({5,6,7})
print(s)
打印結(jié)果就把兩個(gè)集合的內(nèi)容合并到了一起。
還有和update類似的還有幾個(gè),difference_update、intersection_update和
symmetric_difference_update。
這三個(gè)我就講一個(gè)就行了,講這個(gè)intersection_update。其他的都是類似的。
上章我們說(shuō)過(guò),intersection是取交集的意思,我在定義一個(gè)集合s2,然后intersection_update這個(gè)功能有沒有返回值,我定義為s3。
結(jié)果Pytharm給我們提示,說(shuō)intersection_update這個(gè)功能沒有返回值。
既然沒有返回值,那么我們就直接打印。
s = {1, 2, 3, 4}
s2 = {3, 4, 5}
s.intersection_update(s2) # 取交集后 覆蓋原來(lái)的集合
print(s)
打印結(jié)果我們看到了,intersection_update功能取交集之后直接把s給覆蓋掉。
而difference_update和
symmetric_difference_update也會(huì)覆蓋掉原來(lái)的集合,你們可以自己試試。
我們接著來(lái)看還有什么內(nèi)置方法。
copy不用講了吧,就是拷貝一份。
clear也不用講了吧,清空集合。
然后這個(gè)pop也是刪除并返回一個(gè)值,不用講了吧。但是你要注意pop你不能傳參數(shù),因?yàn)榧喜荒苡盟饕≈担疫@個(gè)刪除的順序在不同的環(huán)境下執(zhí)行,刪除的順序也不一定。
這個(gè)也不重要,我們一般不會(huì)太在意集合里面的順序。
然后來(lái)看這個(gè)remove,它的作用就是刪除集合中某一個(gè)元素。我要?jiǎng)h除什么就傳什么進(jìn)去。
s = {1, 2, 3, 4}
s2 = {3, 4, 5}
s.remove(4)
print(s)
但是如果你傳的值,不在集合里面,那么就直接會(huì)報(bào)錯(cuò)。
還有一個(gè)功能和remove一樣,都是刪除集合的某一一個(gè)元素,叫做discard,唯一不一樣的地方就是,如果你刪除的元素集合里不存在它也不會(huì)報(bào)錯(cuò)。
s = {1, 2, 3, 4}
s.remove(5)
print(s)
s = {1, 2, 3, 4}
s.discard(5)
print(s)
然后再來(lái)看這個(gè)add,它的作用是為集合添加一個(gè)元素,和update有區(qū)別。update是要給它傳一個(gè)集合,或者其他可迭代對(duì)象。add只能傳一個(gè)單獨(dú)的值。
s = {1, 2, 3, 4}
s.add(6)
print(s)
現(xiàn)在就剩下最后一個(gè)沒有講了,isdisjoint。它的作用是,如果兩個(gè)集合沒有交集,就返回True。
來(lái)看怎么使用。先定義一個(gè)兩個(gè)集合。
s1 = {1, 2, 3 }
s2 = {4, 5, 6}
res = s1.isdisjoint(s2)
print(res)
這兩個(gè)集合沒有交集,就打印True。如果我在s1加上4,那么兩個(gè)集合就有交集了。就會(huì)打印False。
s1 = {1, 2, 3, 4}
s2 = {4, 5, 6}
res = s1.isdisjoint(s2) # 看兩個(gè)集合有沒有交集 相同的元素 沒有交集就是true 有就false
print(res)
未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » Python 集合類型5