Python中字典的基本知識初步介紹
字典是可變的,并且可以存儲任意數(shù)量的Python對象,包括其他容器類型另一個容器類型。字典包括鍵對(稱為項目)及其相應(yīng)的值。
Python字典也被稱為關(guān)聯(lián)數(shù)組或哈希表。字典的一般語法如下:
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
可以用下面的方式創(chuàng)建字典:
dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };
每個按鍵都來自它的值用冒號(:),該項目以逗號分隔,整個事情是包含在大括號分隔。沒有任何項目一個空的字典是寫只有兩個大括號,就像這樣:{}
鍵在一個字典中是唯一的,而值可能不是。字典的值可以是任何類型的,但鍵必須是不可變的數(shù)據(jù)類型,例如字符串,數(shù)字,或元組。
訪問字典的值:
要訪問字典元素,您可以使用熟悉的方括號一起的關(guān)鍵,獲得它的值。下面是一個簡單的例子:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print "dict['Name']: ", dict['Name'];
print "dict['Age']: ", dict['Age'];
當(dāng)執(zhí)行上面的代碼中,產(chǎn)生以下結(jié)果:
dict['Name']: Zara dict['Age']: 7
如果要訪問一個不存在的鍵,這會得到一個錯誤,如下所示:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print "dict['Alice']: ", dict['Alice'];
當(dāng)執(zhí)行上面的代碼,產(chǎn)生以下結(jié)果:
dict['Zara']: Traceback (most recent call last): File "test.py", line 4, in <module> print "dict['Alice']: ", dict['Alice']; KeyError: 'Alice'
更新字典:
可以通過添加一個新條目或項目(即一個鍵 - 值對),修改現(xiàn)有條目或刪除。作為簡單的例子,如下圖所示在現(xiàn)有條目更新字詞:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry
print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];
當(dāng)執(zhí)行上面的代碼,產(chǎn)生以下結(jié)果:
dict['Age']: 8 dict['School']: DPS School
刪除字典元素:
可以刪除單個字典元素或清除字典中的全部內(nèi)容。也可以刪除整個字典在一個單一的操作。
要刪除整個字典,只要用del語句。下面是一個簡單的例子:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
del dict['Name']; # remove entry with key 'Name'
dict.clear(); # remove all entries in dict
del dict ; # delete entire dictionary
print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];
這將產(chǎn)生以下結(jié)果。注意引發(fā)異常,這是因為經(jīng)過del dict刪除,字典已經(jīng)不存在了:
dict['Age']: Traceback (most recent call last): File "test.py", line 8, in <module> print "dict['Age']: ", dict['Age']; TypeError: 'type' object is unsubscriptable
注:del()方法會在后續(xù)的章節(jié)中討論。
字典的鍵的屬性:
字典值沒有限制。它們可以是任意Python對象,無論是標(biāo)準(zhǔn)的對象或用戶定義的對象。但是作為鍵,是不可以這樣的。
要記住字典中的鍵的兩個要點(diǎn):
(一)不準(zhǔn)一個鍵對應(yīng)多個條目。這意味著不能有重復(fù)的鍵。當(dāng)有重復(fù)的鍵,在分配過程中以最后分配的為準(zhǔn)。下面是一個簡單的例子:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'};
print "dict['Name']: ", dict['Name'];
當(dāng)執(zhí)行上面的代碼,產(chǎn)生以下結(jié)果:
dict['Name']: Manni
(二)鍵的值字必須是不可變的。這意味著可以使用字符串,數(shù)字或元組作為字典的鍵,但像['key']是不允許的。下面是一個簡單的例子:
#!/usr/bin/python
dict = {['Name']: 'Zara', 'Age': 7};
print "dict['Name']: ", dict['Name'];
當(dāng)執(zhí)行上面的代碼,產(chǎn)生以下結(jié)果:
Traceback (most recent call last):
File "test.py", line 3, in <module>
dict = {['Name']: 'Zara', 'Age': 7};
TypeError: list objects are unhashable
相關(guān)文章
Python實(shí)現(xiàn)輕松找出兩個列表不同之處
在日常編程中,需要比較兩個列表并找出它們之間差異是一種常見需求,在本文中,我們將深入探討Python中查找兩個列表差異值的方法,需要的小伙伴可以參考下2023-12-12
python中p-value的實(shí)現(xiàn)方式
今天小編就為大家分享一篇python中p-value的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Python按天實(shí)現(xiàn)生成時間范圍序列的方法詳解
有的時候我們希望生成一段時間返回,比如從?2022-01-01?00:00:00?后面的?10?天,這么?10?個?datetime?對象,但是我們又不想自己去計算哪些月有30天哪些月有31天。所以本文將用Python實(shí)現(xiàn)按天自動生成時間范圍序列,需要的可以參考一下2022-11-11
Python實(shí)現(xiàn)"驗證回文串"的幾種方法
這篇文章主要介紹了Python實(shí)現(xiàn)"驗證回文串"的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03

