最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python學(xué)習(xí)之字典和集合的使用詳解

 更新時(shí)間:2022年11月01日 16:29:45   作者:夢(mèng)想橡皮擦  
Python 中字典和集合也是非常相近的概念,而且從外觀看上去,也有那么一絲絲的相似。本文將從字典基本知識(shí)入手,為你展開(kāi)字典類型數(shù)據(jù)的各個(gè)知識(shí)點(diǎn),需要的可以參考一下

字典簡(jiǎn)介

Python 中字典和集合也是非常相近的概念,而且從外觀看上去,也有那么一絲絲的相似,Python 語(yǔ)言中字典類型是非常靈活的,在實(shí)戰(zhàn)中的使用場(chǎng)景非常多,后續(xù)項(xiàng)目課中會(huì)反復(fù)涉及。

本篇博會(huì)從字典基本知識(shí)入手,為你展開(kāi)字典類型數(shù)據(jù)的各個(gè)知識(shí)點(diǎn)。

首先我們看一下定義:

字典,是可變的無(wú)序集合(在 Python 最新版本中,已經(jīng)變?yōu)橛行颍?,它是一種以鍵值對(duì)為基本元素,可以存放各種數(shù)據(jù)類型的容器,用大括號(hào)({})表示字典的開(kāi)始和結(jié)束,元素之間用逗號(hào)(,)進(jìn)行分隔。

前面這段話的重點(diǎn)是【鍵值對(duì)】,也就是說(shuō)字典中的每一個(gè)元素(每一項(xiàng))都是由鍵和值組成的集合,先記住兩個(gè)單詞,鍵(Key)和值(Value),鍵值對(duì)中間用冒號(hào)(:)分隔,例如字典中的一個(gè)元素(name:'橡皮擦'),前面的 name 就是鍵,后面的字符串 橡皮擦 就是值,從鍵值對(duì)可以看出,字典屬于一對(duì)一的映射關(guān)系。

字典的聲明

使用空的大括號(hào),可以直接聲明一個(gè)空字典。

my_dict= {}
print(my_dict)

定義一個(gè)只有一個(gè)元素的字典。

my_dict= {'name':'橡皮擦'}
print(my_dict)

定義由多個(gè)元素的字典。

my_dict= {'name':'橡皮擦','age':19}
print(my_dict)

字典設(shè)置時(shí)對(duì)鍵和值的要求 鍵的要求如下: 鍵要唯一,也就是一個(gè)字典對(duì)象所有的鍵必須唯一,出現(xiàn)相同的鍵值對(duì),只保留最后一個(gè),例如下述代碼:

my_dict= {'name':'橡皮擦','name':'擦哥','age':19}
print(my_dict)

鍵名無(wú)法直接修改,只能刪除原有鍵值對(duì),再新增鍵值對(duì)實(shí)現(xiàn)對(duì)鍵名的修改。

字典的基本方法

字典作為 Python 中的一個(gè)普通對(duì)象,其存在一些基本操作方法,具體如下。

  • clear():清空字典;
  • get():通過(guò)指定鍵,或者對(duì)應(yīng)值,如果鍵不存在,返回 None;
  • keys():獲取所有鍵;
  • values():獲取字典中所有值;
  • items():以元組格式返回字典中的所有元素;
  • fromkeys():使用給定的鍵建立新字典,每個(gè)鍵對(duì)應(yīng)的值默認(rèn)為 None,可以初始化一個(gè)字典;
  • pop():刪除指定鍵,并返回鍵對(duì)應(yīng)的值;
  • popitem():隨機(jī)返回元素,并刪除;
  • setdefault():設(shè)置鍵值對(duì),當(dāng)字典中鍵不存在,新增,當(dāng)字典中存在鍵值對(duì)時(shí),獲取對(duì)應(yīng)的值;
  • update():使用一個(gè)字典更新另一個(gè)字典;

字典元素添加

向字典中添加元素,可以使用如下幾種形式。

第一種,直接添加,即一次性添加鍵值對(duì)。

my_dict= {'name':'橡皮擦'}
my_dict["age"] = 19 # 直接添加
print(my_dict)

用上述方法添加鍵值對(duì),需要注意添加的鍵在原字典中不存在,否則會(huì)執(zhí)行更新操作。

第二種,通過(guò) setdefault() 給字典添加新鍵值對(duì),代碼如下:

my_dict= {'name':'橡皮擦'}
my_dict.setdefault('age',19)
print(my_dict)

setdefault() 方法添加已存在的鍵時(shí),不執(zhí)行添加操作,會(huì)返回原鍵對(duì)應(yīng)的值,請(qǐng)測(cè)試下述代碼。

my_dict= {'name':'橡皮擦'}
my_dict.setdefault('name',19)
print(my_dict)

獲取字典鍵對(duì)應(yīng)的值

通過(guò)鍵獲取值,有如下兩種形式,例如通過(guò)指定鍵查找對(duì)應(yīng)值。

my_dict= {'name':'橡皮擦'}
ret = my_dict['name']
print(ret)

該方法如果指定了一個(gè)不存在的鍵,會(huì)直接報(bào)錯(cuò),錯(cuò)誤信息如下所示。

---------------------------------------------------------------------------
KeyError    Traceback (most recent call last)
<ipython-input-11-3e4eeea728e6> in <module>
      1 my_dict= {'name':'橡皮擦'}
----> 2 ret = my_dict['name1']
      3 print(ret)

KeyError: 'name1'

使用 get() 方法也可以獲取鍵對(duì)應(yīng)的值,使用該方法獲取值的時(shí)候,如果鍵不存在,不會(huì)報(bào)錯(cuò),并且返回 None。

my_dict= {'name':'橡皮擦'}
ret = my_dict.get('name1')
print(ret)

如果不希望結(jié)果返回 None,可以設(shè)置缺省返回值,即使用 get() 方法的第二個(gè)參數(shù)。

my_dict= {'name':'橡皮擦'}
ret = my_dict.get('name1','無(wú)該值')
print(ret)

字典元素的修改

字典由于鍵不可被修改,所以只能修改值,下面的兩個(gè)方法都可以修改值。 第一種方法在前文已經(jīng)學(xué)習(xí),即使用中括號(hào)加鍵進(jìn)行修改,這里咱們不再重復(fù)講解,而為大家介紹 update() 方法,該方法可以通過(guò)字典修改原字典。

my_dict= {'name':'橡皮擦'}
my_dict.update({'name':'大橡皮擦','age':19})
print(my_dict)

使用 update() 方法過(guò)程中,你需要注意到,該方法還可以對(duì)原字典進(jìn)行新增操作,即當(dāng)待添加的字典中存在原字典未包含的鍵時(shí),會(huì)執(zhí)行新增操作。

字典元素的刪除

有 1 個(gè)函數(shù)和 2 個(gè)方法可以實(shí)現(xiàn)字典元素的刪除。 第一個(gè)函數(shù)是 del(),該函數(shù)可以直接刪除字典對(duì)象,也可以刪除字典中的鍵值對(duì),代碼如下:

my_dict= {'name':'橡皮擦'}
my_dict.update({'name':'大橡皮擦','age':19})
del(my_dict['age'])

print(my_dict)

使用 pop() 方法刪除,示例代碼如下:

my_dict= {'name':'橡皮擦'}
my_dict.update({'name':'大橡皮擦','age':19})
ret = my_dict.pop('age')

print(ret)

如果使用 pop() 方法刪除不存在的值,會(huì)直接報(bào)錯(cuò),未防止該現(xiàn)象發(fā)生,可以使用 pop() 方法的第二個(gè)參數(shù)。

my_dict= {'name':'橡皮擦'}
my_dict.update({'name':'大橡皮擦','age':19})
ret = my_dict.pop('age1',10010)

print(ret)

使用 popitem() 方法會(huì)隨機(jī)刪除一個(gè)元素,示例代碼如下:

my_dict= {'name':'橡皮擦'}
my_dict.update({'name':'大橡皮擦','age':19})
ret = my_dict.popitem()

print(ret)

字典的遍歷

使用 keys(),values()items() 可以對(duì)字典進(jìn)行遍歷,其對(duì)應(yīng)關(guān)系分別是遍歷所有鍵,遍歷所有值,遍歷所有鍵值。

my_dict= {'name':'橡皮擦'}
my_dict.update({'name':'大橡皮擦','age':19})
print(my_dict.keys())
print(my_dict.values())
print(my_dict.items())

輸出結(jié)果如下:

dict_keys(['name', 'age'])
dict_values(['大橡皮擦', 19])
dict_items([('name', '大橡皮擦'), ('age', 19)])

集合學(xué)習(xí)

首先依舊是掌握集合的定義,集合是一個(gè)無(wú)序的,可變的,不重復(fù)的容器,集合用大括號(hào)({})標(biāo)記開(kāi)始和結(jié)束,中間的元素用逗號(hào)進(jìn)行分隔,集合可以容納任意類型的數(shù)據(jù),而字典其實(shí)是特殊的集合,所以在學(xué)習(xí)的時(shí)候,可以對(duì)比字典進(jìn)行練習(xí)。

集合的定義 集合也是使用大括號(hào)({})定義的,但不能使用一個(gè)空大括號(hào),這樣 Python 會(huì)認(rèn)為聲明了一個(gè)空字典,如果希望聲明空集合,需要用 set() 函數(shù)。

my_set= set()
print(my_set)

聲明包含一個(gè)元素的集合。

my_set = {1,}
print(type(my_set))

集合添加元素

使用 add() 方法可以添加元素,示例代碼如下所示:

my_set = set()
my_set.add('橡皮擦')
print(my_set)

使用 update() 可以一次增加一個(gè)元素,也可以增加多個(gè)元素。

my_set = set()
my_set.update({'橡皮擦',28})
print(my_set)

集合刪除元素

使用 discard()、remove()pop() 方法可以刪除集合中的元素,示例代碼如下。 使用 discard() 可以刪除指定元素,若元素不存在,不報(bào)錯(cuò)(很重要)

my_set = set()
my_set.update({'橡皮擦',28,'石家莊','產(chǎn)品經(jīng)理'})


my_set.discard('石家莊')

print(my_set)

使用 remove() 可以刪除指定元素,若元素不存在,報(bào)錯(cuò)(很重要)

my_set = set()
my_set.update({'橡皮擦',28,'石家莊','產(chǎn)品經(jīng)理'})


my_set.remove('石家莊')

print(my_set)

使用 pop() 可以隨機(jī)刪除一個(gè)元素,并返回被刪除的元素

統(tǒng)計(jì)集合個(gè)數(shù),判斷元素是否存在,清空集合

如題所示,該小節(jié)存在 3 個(gè)知識(shí)點(diǎn),分別是 len()in 成員運(yùn)算符、clear(),示例代碼如下。

len() 函數(shù)用法

my_set = set()
my_set.update({'橡皮擦',28,'石家莊','產(chǎn)品經(jīng)理'})

my_set.discard('石家莊')

print(len(my_set))

in 成員運(yùn)算符用法

my_set = set()
my_set.update({'橡皮擦',28,'石家莊','產(chǎn)品經(jīng)理'})

ret = '石家莊' in my_set

print(ret)

clear() 方法使用

my_set = set()
my_set.update({'橡皮擦',28,'石家莊','產(chǎn)品經(jīng)理'})

my_set.clear()

print(my_set)

集合運(yùn)算

Python 語(yǔ)言中的集合于數(shù)學(xué)中的集合概念基本一致,所以其包含交并差集的計(jì)算,接下來(lái)為大家逐一說(shuō)明。

求并集 union() 方法

A = {1,2,3}
B = {4,5,1}
ret = A.union(B)
print(ret)

還可以使用 | 符號(hào)。

A = {1,2,3}
B = {4,5,1}
ret = A | B
print(ret)

求交集 intersection() 方法,也可以使用 intersection_update() 方法 二者的區(qū)別是前者返回新集合,后者在原集合上進(jìn)行更新。

A = {1,2,3}
B = {4,5,1}
ret = A.intersection(B)
print(ret)

對(duì)比下述代碼,查看區(qū)別。

A = {1,2,3}
B = {4,5,1}
ret = A.intersection_update(B)
print(ret) # 返回None
print(A)

使用符號(hào) & 也可以實(shí)現(xiàn)交集操作,同 intersection() 方法。

求差集 difference() 方法 求差異的時(shí)候需要注意誰(shuí)在前誰(shuí)在后問(wèn)題,即 A-B 和 B-A 得到的結(jié)果是不同的。

A = {1,2,3}
B = {4,5,1}
ret = A.difference(B)
print(ret)

求差異也可以使用符號(hào) - 實(shí)現(xiàn),代碼請(qǐng)自行編寫(xiě)。

到此這篇關(guān)于Python學(xué)習(xí)之字典和集合的使用詳解的文章就介紹到這了,更多相關(guān)Python字典 集合內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python的對(duì)象傳遞與Copy函數(shù)使用詳解

    Python的對(duì)象傳遞與Copy函數(shù)使用詳解

    今天小編就為大家分享一篇Python的對(duì)象傳遞與Copy函數(shù)使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • Selenium及python實(shí)現(xiàn)滾動(dòng)操作多種方法

    Selenium及python實(shí)現(xiàn)滾動(dòng)操作多種方法

    這篇文章主要介紹了Selenium及python實(shí)現(xiàn)滾動(dòng)操作多種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • python根據(jù)時(shí)間生成mongodb的ObjectId的方法

    python根據(jù)時(shí)間生成mongodb的ObjectId的方法

    這篇文章主要介紹了python根據(jù)時(shí)間生成mongodb的ObjectId的方法,涉及Python操作mongodb數(shù)據(jù)庫(kù)的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • python Dataframe字符串合并的操作方法

    python Dataframe字符串合并的操作方法

    Dataframe的字符串合并包括2種場(chǎng)景,1.合并df中其中幾列字符串;2.將df中的字符串與外部字符串合并,本文主要介紹在Python下對(duì)Dataframe進(jìn)行字符串合并操作的方法,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • Python檢測(cè)一個(gè)對(duì)象是否為字符串類的方法

    Python檢測(cè)一個(gè)對(duì)象是否為字符串類的方法

    這篇文章主要介紹了Python檢測(cè)一個(gè)對(duì)象是否為字符串類的方法,即檢測(cè)是一個(gè)對(duì)象是否是字符串對(duì)象,本文還講解了一個(gè)有趣的判斷方法,需要的朋友可以參考下
    2015-05-05
  • 詳解Python使用tensorflow入門(mén)指南

    詳解Python使用tensorflow入門(mén)指南

    本篇文章主要介紹了詳解Python使用tensorflow入門(mén)指南,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • Python實(shí)現(xiàn)局域網(wǎng)遠(yuǎn)程控制電腦

    Python實(shí)現(xiàn)局域網(wǎng)遠(yuǎn)程控制電腦

    這篇文章主要為大家詳細(xì)介紹了如何利用Python編寫(xiě)一個(gè)工具,可以實(shí)現(xiàn)遠(yuǎn)程控制局域網(wǎng)電腦關(guān)機(jī),重啟,注銷等功能,感興趣的小伙伴可以參考一下
    2024-12-12
  • Python連接數(shù)據(jù)庫(kù)學(xué)習(xí)之DB-API詳解

    Python連接數(shù)據(jù)庫(kù)學(xué)習(xí)之DB-API詳解

    在沒(méi)有 Python DB-API 之前,各數(shù)據(jù)庫(kù)之間的應(yīng)用接口非?;靵y,實(shí)現(xiàn)各不相同。如果項(xiàng)目需要更換數(shù)據(jù)庫(kù)時(shí),則需要做大量的修改,非常不便。Python DB-API 的出現(xiàn)就是為了解決這樣的問(wèn)題。本文主要介紹了Python連接數(shù)據(jù)庫(kù)之DB-API的相關(guān)資料,需要的朋友可以參考。
    2017-02-02
  • Python數(shù)據(jù)分析的八種處理缺失值方法詳解

    Python數(shù)據(jù)分析的八種處理缺失值方法詳解

    缺失值可能是數(shù)據(jù)科學(xué)中最不受歡迎的值,然而,它們總是在身邊。忽略缺失值也是不合理的,因此我們需要找到有效且適當(dāng)?shù)靥幚硭鼈兊姆椒?/div> 2021-11-11
  • 基于python中__add__函數(shù)的用法

    基于python中__add__函數(shù)的用法

    今天小編就為大家分享一篇基于python中__add__函數(shù)的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11

最新評(píng)論

监利县| 桂阳县| 金沙县| 宜君县| 昆明市| 陵水| 阳原县| 临高县| 黄龙县| 焦作市| 廉江市| 中卫市| 醴陵市| 辰溪县| 灯塔市| 通化县| 扶沟县| 十堰市| 年辖:市辖区| 建平县| 萝北县| 兖州市| 济宁市| 澜沧| 巴楚县| 罗甸县| 濮阳市| 青海省| 观塘区| 普格县| 天峨县| 临清市| 凉城县| 福贡县| 利津县| 长子县| 新疆| 拉萨市| 延庆县| 资源县| 永和县|