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

歡迎訪問 生活随笔!

生活随笔

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

python

python字典的数据结构_Python数据结构之三——dict(字典)

發(fā)布時(shí)間:2025/4/16 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python字典的数据结构_Python数据结构之三——dict(字典) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python版本:3.6.2 ?操作系統(tǒng):Windows ?作者:SmallWZQ

知識(shí)源于生活。Python也是如此。

提到字典,我首先想到的是數(shù)學(xué)大師——高斯。

為何想起他呢?這主要是因?yàn)楦咚顾惴铩S?jì)算1+2+3+...+100,一般人都會(huì)從1一直加到100,而高斯卻另辟蹊徑,找到規(guī)律,從而發(fā)現(xiàn)“高斯算法”。高斯算法極大地提高運(yùn)算效率。對(duì)于Python中的字典,它與高斯算法異曲同工,同樣能提高鍵值對(duì)的查找效率。

映射(mapping):通過名字來引用值的數(shù)據(jù)結(jié)構(gòu)。

字典是Python中唯一內(nèi)建的映射類型。字典的鍵值對(duì)(Key-Values),鍵是不可變的,可以為字符串、數(shù)字(int、float......)、元組等等。

字典中的鍵是唯一的,而值卻可以相同。

Python格式如下:

1 phone = {'Jack':'0571','James':'7856','Paul':'2364'} #大括號(hào),且鍵值對(duì)之間用冒號(hào)(:)隔開

注:對(duì)于上面的代碼,可能有讀者會(huì)疑問:為什么用字符串表示電話號(hào)碼呢?

主要是考慮以“0”開頭的電話號(hào)碼。定義電話號(hào)碼時(shí),以“0”開頭會(huì)顯示錯(cuò)誤(Error)。因此,為了考慮周全,字典中電話號(hào)碼應(yīng)表示為數(shù)字字符串,而不是整數(shù)。

圖1 電話號(hào)碼錯(cuò)誤示例

1.創(chuàng)建字典和訪問元素

創(chuàng)建方式如下:

d = {'a':'97','b':'98','c':'99','c':'101'}print(d)

d['a']

'97'

注:字典中即使鍵相同,也只會(huì)輸出其中一個(gè)(若Key相同,后面的值(Value)會(huì)把前面的覆蓋掉)。

2.添加元素

字典沒有insert()方法,但依然能夠添加元素。

d = {'a':'98','b':'99','c':'100'}

d['d'] = '101'

print(d)

3.刪除元素

字典中刪除元素,使用pop()方法。pop()方法用于獲得對(duì)應(yīng)于給定鍵的值,并將該鍵值對(duì)從字典中移除。

d ={‘a(chǎn)':'97','b':'98','c':'99'}

d.pop('b')'98'

print(d)

{‘a(chǎn)':'97','c':'99'}

注:除了pop()方法,還可以使用del方法

4.修改元素

字典中的元素如何修改呢?很簡(jiǎn)單,直接通過Key修改Value。

d ={‘a(chǎn)':'97','b':'98','c':'99'}

d['b'] = '200'

print(d['b'])'200'

print(d)

d={‘a(chǎn)':'97','b':'200','c':'99'}

5.查找元素

字典中查找元素與修改元素類似,也是通過Key來查找字典中的Value。

d ={‘a(chǎn)':'97','b':'98','c':'99'}

d['b']'98'd['c']'99'

如果字典中沒有該Key時(shí),dict會(huì)報(bào)錯(cuò)。

圖2 錯(cuò)誤提示(KeyError)

如何避免Key不存在的錯(cuò)誤呢?

1.通過k in d,判斷Key是否在dict中:

‘a(chǎn)’ ind

True'f' ind

False

2.get()方法用于更寬松的訪問字典項(xiàng)的方法。如果Key不存在,使用get()沒有任何異常,僅僅返回None值:

圖3 get()方法示例

注:通過d.get('f','120')并不能往字典d ={}中添加鍵-值對(duì)。

6.字典基本操作總結(jié)

?len(d):返回d中鍵-值對(duì)的數(shù)量;

?d[k]:返回關(guān)聯(lián)到鍵K上的值(Value);

?d[k] = V:將值V關(guān)聯(lián)到將K上;

?del d[k]:刪除鍵為K的項(xiàng);

?K in d:檢查d中是否含有鍵K的元素;

?鍵K類型:字符串、數(shù)字或元組,符合條件的不可變類型均可;

?字典格式化字符串:%(Jack)s %(phone)。【其中Jack為鍵,而phone為dict{}】

其實(shí),元組不一定可以用于dict的鍵(Key):

d ={‘a(chǎn)':'97','b':'98','c':'99'}

d[(1,2,3,4,5,6)] = '121'

print(d)

d={‘a(chǎn)':'97','b':'98','c':'99',(1,2,3,4,5,6):'121'}

d[(1,2,[1,2,3])] = '188'Traceback (most recent call last):

File"", line 1, in TypeError: unhashable type:'list'

注:如果元組用于鍵,元組中不能含有可變內(nèi)容list,否則編譯錯(cuò)誤。

字典總結(jié):

1.字典中元素必須以鍵值對(duì)的形式出現(xiàn);

2.字典中的鍵必須是不可變的,可以是字符串、數(shù)字以及元組,并且無法修改;

3.Key是唯一的,不可重復(fù),而Value可以重復(fù);

4.字典查找和插入元素極快,并不會(huì)隨著Key增加而減慢;

5.字典占用內(nèi)存大,以空間換取時(shí)間;

6.特別地,當(dāng)tuple作為字典中的鍵(Key)時(shí),tuple中不能包含list,否則編譯錯(cuò)誤。

總結(jié)

以上是生活随笔為你收集整理的python字典的数据结构_Python数据结构之三——dict(字典)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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