日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python第七关再来一盘_7、 Python系列,七,的,集合

發(fā)布時(shí)間:2024/9/30 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python第七关再来一盘_7、 Python系列,七,的,集合 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

集合

1、什么是集合

我們可以把集合看作是沒(méi)有存儲(chǔ)value的字典,也就是說(shuō)可以把集合看作是只有key的字典。

我們知道字典中的key它必須是不可變的類型,因?yàn)槲覀円鶕?jù)key調(diào)用哈希函數(shù)hash()來(lái)計(jì)算出哈希碼,也就是說(shuō)key-value對(duì)的存儲(chǔ)位置,為了保證每次存取的這個(gè)key-value對(duì)呢它是固定的,所以key要求是不可變的類型。所以集合中的數(shù)據(jù)可以是任何不可變的類型。

我們還是根據(jù)集合的示意圖來(lái)把這些特點(diǎn)再來(lái)回顧一下:

這個(gè)示意圖其實(shí)就是把字典的那個(gè)示意圖中的value給去掉了,只保留了key,然后這個(gè)key呢其實(shí)就是集合保存的數(shù)據(jù),也就是我把key也換成了數(shù)據(jù),這樣呢在計(jì)算存儲(chǔ)位置的時(shí)候,也就是計(jì)算哈希碼的時(shí)候,傳入給hash函數(shù)的這個(gè)參數(shù)就是集合中保存的這個(gè)數(shù)據(jù)。

2、集合的創(chuàng)建

3、集合間的關(guān)系

因?yàn)榧现械脑厥菬o(wú)序的,所以順序不重要。

dis表示沒(méi)有的意思,joint就是交集、連接的意思,所以disjoint就是沒(méi)有交集。

4、集合的數(shù)學(xué)操作

差集,它指的是包含在集合a中,但是不包含在集合b中的那部分元素。

對(duì)稱差集,它指的是a、b兩個(gè)集合的并集,再除去a、b兩個(gè)集合的交集,就是兩個(gè)集合的對(duì)稱差集。

接下來(lái)我們就來(lái)學(xué)習(xí)下,如何在Python程序中集合的這4種數(shù)學(xué)操作。

5、集合的查操作

6、集合的增操作

大家注意,因?yàn)榧现胁淮嬖谥貜?fù)的數(shù)據(jù),所以呢集合中已經(jīng)存在的元素就不會(huì)再次被添加到集合中。

因?yàn)榧现械脑鼐哂形ㄒ恍?#xff0c;也就是說(shuō)集合中不能存在重復(fù)的元素,所以不管你使用上面這兩種方式中的哪一種,集合中已經(jīng)存在的元素都不會(huì)被再次添加到集合中。

7、集合的刪操作

我調(diào)用方法pop的時(shí)候并沒(méi)有指定參數(shù),因?yàn)榧现械脑睾妥值涫穷愃频?#xff0c;都是沒(méi)有順序的,所以我們無(wú)法指定我們要?jiǎng)h除的那個(gè)元素,只能是不傳入?yún)?shù),這樣就會(huì)刪除任意一個(gè)元素。

調(diào)用clear方法,清空集合中的所有元素,再來(lái)打印s的話,它就是一個(gè)空集合了。

8、不可變集合frozenset

frozen,被凍結(jié)的,顧名思義,frozenset的意思是,被凍結(jié)的集合,也就是不可變的集合。

frozenset之于set呢就好比是tuple之于list,在前面的課程中我們已經(jīng)學(xué)習(xí)了,tuple是不可變的,而list是可變的,這是list和tuple的一個(gè)最主要的區(qū)別。

同樣,set是可變的,而frozenset是不可變的,這也是set與frozenset的最主要的一個(gè)區(qū)別。

前面的課程中我們已經(jīng)講過(guò)了,只有不可變類型的對(duì)象才存在哈希值。

字典的key只能是不可變類型的對(duì)象。

frozenset可以作為set中的元素,因?yàn)槲覀冋f(shuō)集合中的元素呢就相當(dāng)于是把字典中的key-value對(duì)中的value去除掉。

如果我不傳入任何參數(shù)的話,這樣就創(chuàng)建了一個(gè)空f(shuō)rozenset對(duì)象,也就是說(shuō)這個(gè)frozenset中呢不包含任何的元素。

與set對(duì)象的創(chuàng)建是類似的,我們?cè)谡{(diào)用這個(gè)內(nèi)置函數(shù)frozenset的時(shí)候,傳入的這個(gè)參數(shù)可以是多種類型的。

前面的課程中,我們有講到過(guò),我們?cè)诔绦蛑幸M量的使用不可變類型的對(duì)象,因?yàn)椴豢勺冾愋偷膶?duì)象呢是有好處的:

它的第一個(gè)好處是,一旦我們創(chuàng)建了一個(gè)不可變類型的對(duì)象,那么它的所有數(shù)據(jù)都不能夠被修改了,這樣呢就不會(huì)產(chǎn)生由于修改數(shù)據(jù)而導(dǎo)致的錯(cuò)誤;

第二個(gè)好處是,在多任務(wù)環(huán)境下,同時(shí)操作對(duì)象時(shí),不需要加鎖,所以在程序中我們應(yīng)該盡可能的選擇使用不可變類型的對(duì)象。

總結(jié)

以上是生活随笔為你收集整理的python第七关再来一盘_7、 Python系列,七,的,集合的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。