久久久精品2019免费观看_亚洲国产精品成人久久久_69国产成人综合久久精品91_国产精品久久精品视

Python 集合類型4

前面我們學(xué)習(xí)了集合的幾種關(guān)系運(yùn)算,交集、并集、差集、對稱差集和父子集,我們都是用對應(yīng)的符號來取的。

同時集合也有一些內(nèi)置方法,可以實(shí)現(xiàn)取交集、并集、差集、對稱差集和父子集。

首先來看取交集的內(nèi)置方法。

hobbies1 = ['吃飯', '睡覺', '看書', '鋼琴', '跳舞', '游泳']
hobbies2 = ['吃飯', '睡覺', '打游戲', '追劇', '健身']
print(hobbies1.intersection(hobbies2))

兩種方法取的交集是一樣的。

然后再看取并集。

hobbies1 = {'吃飯', '睡覺', '看書', '鋼琴', '跳舞', '游泳'}
hobbies2 = {'吃飯', '睡覺', '打游戲', '追劇', '健身'}
print(hobbies1.union(hobbies2))

接著是取差集。

hobbies1 = {'吃飯', '睡覺', '看書', '鋼琴', '跳舞', '游泳'}
hobbies2 = {'吃飯', '睡覺', '打游戲', '追劇', '健身'}
print(hobbies1.difference(hobbies2))
print(hobbies2.difference(hobbies1))

對稱差集。

hobbies1 = {'吃飯', '睡覺', '看書', '鋼琴', '跳舞', '游泳'}
hobbies2 = {'吃飯', '睡覺', '打游戲', '追劇', '健身'}
print(hobbies1.symmetric_difference(hobbies2))

父子集。

s1 = {1, 2, 3}
s2 = {1, 2}
print(s1.issuperset(s2))
print(s1.issubset(s2))

上面的我就不詳細(xì)的展開講了,這些內(nèi)置功能還是用符號比較方便。

到這里我就把集合的關(guān)系運(yùn)算講完了,接下來我們學(xué)習(xí)集合的另外一種用途。

去重。

集合去重的話還沒辦法保證原來的順序的。我先定義一個列表,然后轉(zhuǎn)成集合。

l = ['a', 'b', 'c', 'a', 'd', 'e']
print(set(l))

打印結(jié)果出來了,我們看到打印出來的并沒有保證我們原來的順序。同樣的代碼我再運(yùn)行一下。

結(jié)果又變了,每次順序可能都不一樣。

還有就是集合只是針對不可變類型,前面我們也說過了。

我再定義一個列表,如果我要對它進(jìn)行去重的話,用集合就不行了,會直接報錯。

info = [['張三', 18]
    , ['李四', 19]
    , ['王五', 17]
    , ['張三', 18]
    , ['李四', 19]]
set(info)

因?yàn)樗锩媲短椎亩际橇斜恚斜碛侄际强勺冾愋?,如果我們要對它進(jìn)行去重的話也很簡單,還是一個for循環(huán)就實(shí)現(xiàn)了。

info = [['張三', 18]
    , ['李四', 19]
    , ['王五', 17]
    , ['張三', 18]
    , ['李四', 19]]
new_info = []
for i in info:
    if i not in new_info:
        new_info.append(i)
print(new_info)

集合也可以用len來統(tǒng)計(jì)長度。

也可以用in和not in 來做成員運(yùn)算。

還有for循環(huán)。

這幾個功能對于學(xué)到現(xiàn)在的你來說太簡單了,我就不做演示了。

未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » Python 集合類型4

贊 (0) 打賞

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

微信掃一掃打賞