Python字典簡(jiǎn)介以及用法詳解
#!/usr/bin/env python # -*- coding:utf-8 -*- """
老規(guī)矩以下方法環(huán)境2.7.x,請(qǐng)3.x以上版本的朋友記得格式print(輸出內(nèi)容放入括號(hào)內(nèi))
字典的基本組成以及用法
dict = { key : value } dict[ key ] = value
首先來說說字典是由key鍵與value值一一對(duì)應(yīng)來組成字典的基本結(jié)構(gòu)
key鍵不能由list列表,dict字典等多元素命名,
key是唯一屬性又可以稱一對(duì)一服務(wù),key相同但只會(huì)輸出一個(gè)
value值可以由一個(gè)或多元素命名,不是唯一屬性又可以稱一對(duì)多服務(wù)
很重要的一點(diǎn)就是字典是無序的
下面來看看字典的寫法用法:
""" #dic ={} 初始化一個(gè)字典 dic_samekey = {"a":None,"a":None,"b":None,"b":None} #key相同的情況 print dic_samekey dic_morevalue = {"a":["0","1","2"],"b":{"c":0,"d":1,"e":2},"t":(0,1,2)} #value一對(duì)多的特性 print dic_morevalue #這時(shí)候看到多value很頭疼了吧怎么取也來學(xué)習(xí)下, #其實(shí)我命名的的value值已經(jīng)標(biāo)記好下標(biāo)也是默認(rèn)排序,字典無序的再次提醒 #dict[ key ] = value 這樣可以命名一個(gè)字典同樣可以取一個(gè)想要的值 print dic_morevalue["a"][0],dic_morevalue["a"][1],dic_morevalue["a"][2] print dic_morevalue["b"]["c"],dic_morevalue["b"]["d"],dic_morevalue["b"]["e"]#多字典用法可以構(gòu)造多級(jí)選擇 print dic_morevalue["t"][0],dic_morevalue["t"][1],dic_morevalue["t"][2] #快速獲取字典所有的key方法及類型 print dic_morevalue.keys(),type(dic_morevalue.keys()) #返回的類型是list列表 #快速獲取字典所有的value方法及類型 print dic_morevalue.values(),type(dic_morevalue.values()) #也是list列表 #copy顧名思義拷貝(淺拷貝)俗稱賦值 dic_test = dic_morevalue.copy() dic = dic_test print dic_test #clear同意思清除,在這樣清空字典內(nèi)的所有元素 print dic_morevalue.clear() #has_key用來判斷字典內(nèi)有無這個(gè)key鍵,返回布爾類型也就是真假有為True反之為False print dic_test.has_key("b") #get也可以用這個(gè)方法來判斷字典內(nèi)有無此key鍵,在沒有key時(shí)會(huì)返回它默認(rèn)值None print dic_test.get("k") #pop用來移除字典的某個(gè)key及其value b = dic_test.pop("b") print dic_test,u"移除了b:",b #item()方法把字典中每對(duì)key和value組成一個(gè)元組,并把這些元組放在列表中返回。 item = dic_test.items() print item #update可以把兩個(gè)字典合并到其中用update的字典內(nèi) dic2 = {"j":"nice"} dic_test.update(dic2) print dic_test #fromkeys從keys鍵隊(duì)列中統(tǒng)一命名value值,如果沒有設(shè)置就是None seq = ["name","age","job"] print dic_test.fromkeys(seq) print dic_test.fromkeys(seq,"guess") #統(tǒng)一命名為guess
下面我們來具體看下字典的用法:
一、創(chuàng)建字典
字典由鍵和對(duì)應(yīng)值成對(duì)組成。字典也被稱作關(guān)聯(lián)數(shù)組或哈希表?;菊Z(yǔ)法如下:
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
也可如此創(chuàng)建字典:
dict1 = { 'abc': 456 }; dict2 = { 'abc': 123, 98.6: 37 };
注意:
每個(gè)鍵與值用冒號(hào)隔開(:),每對(duì)用逗號(hào),每對(duì)用逗號(hào)分割,整體放在花括號(hào)中({})。
鍵必須獨(dú)一無二,但值則不必。
值可以取任何數(shù)據(jù)類型,但必須是不可變的,如字符串,數(shù)或元組。
二、訪問字典里的值
把相應(yīng)的鍵放入熟悉的方括弧,如下實(shí)例:
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; print "dict['Name']: ", dict['Name']; print "dict['Age']: ", dict['Age']; #以上實(shí)例輸出結(jié)果: #dict['Name']: Zara #dict['Age']: 7
如果用字典里沒有的鍵訪問數(shù)據(jù),會(huì)輸出錯(cuò)誤如下:
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; print "dict['Alice']: ", dict['Alice']; #以上實(shí)例輸出結(jié)果: #dict['Zara']: #Traceback (most recent call last): # File "test.py", line 4, in <module> # print "dict['Alice']: ", dict['Alice']; #KeyError: 'Alice'[/code]
三、修改字典
向字典添加新內(nèi)容的方法是增加新的鍵/值對(duì),修改或刪除已有鍵/值對(duì)如下實(shí)例:
#!/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']; #以上實(shí)例輸出結(jié)果: #dict['Age']: 8 #dict['School']: DPS School
四、刪除字典元素
能刪單一的元素也能清空字典,清空只需一項(xiàng)操作。
顯示刪除一個(gè)字典用del命令,如下實(shí)例:
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; del dict['Name']; # 刪除鍵是'Name'的條目 dict.clear(); # 清空詞典所有條目 del dict ; # 刪除詞典 print "dict['Age']: ", dict['Age']; print "dict['School']: ", dict['School']; #但這會(huì)引發(fā)一個(gè)異常,因?yàn)橛胐el后字典不再存在: dict['Age']: #Traceback (most recent call last): # File "test.py", line 8, in <module> # print "dict['Age']: ", dict['Age']; #TypeError: 'type' object is unsubscriptable
五、字典鍵的特性
字典值可以沒有限制地取任何python對(duì)象,既可以是標(biāo)準(zhǔn)的對(duì)象,也可以是用戶定義的,但鍵不行。
兩個(gè)重要的點(diǎn)需要記住:
1)不允許同一個(gè)鍵出現(xiàn)兩次。創(chuàng)建時(shí)如果同一個(gè)鍵被賦值兩次,后一個(gè)值會(huì)被記住,如下實(shí)例:
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}; print "dict['Name']: ", dict['Name']; #以上實(shí)例輸出結(jié)果: #dict['Name']: Manni
2)鍵必須不可變,所以可以用數(shù),字符串或元組充當(dāng),所以用列表就不行,如下實(shí)例:
#!/usr/bin/python dict = {['Name']: 'Zara', 'Age': 7}; print "dict['Name']: ", dict['Name']; #以上實(shí)例輸出結(jié)果: #Traceback (most recent call last): # File "test.py", line 3, in <module> # dict = {['Name']: 'Zara', 'Age': 7}; #TypeError: list objects are unhashable
六、字典內(nèi)置函數(shù)&方法
Python字典包含了以下內(nèi)置函數(shù):
1、cmp(dict1, dict2):
比較兩個(gè)字典元素。
2、len(dict):
計(jì)算字典元素個(gè)數(shù),即鍵的總數(shù)。
3、str(dict):
輸出字典可打印的字符串表示。
4、type(variable):
返回輸入的變量類型,如果變量是字典就返回字典類型。
Python字典包含了以下內(nèi)置方法:
1、radiansdict.clear():
刪除字典內(nèi)所有元素
2、radiansdict.copy():
返回一個(gè)字典的淺復(fù)制
3、radiansdict.fromkeys():
創(chuàng)建一個(gè)新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對(duì)應(yīng)的初始值
4、radiansdict.get(key, default=None):
返回指定鍵的值,如果值不在字典中返回default值
5、radiansdict.has_key(key):
如果鍵在字典dict里返回true,否則返回false
6、radiansdict.items():
以列表返回可遍歷的(鍵, 值) 元組數(shù)組
7、radiansdict.keys():
以列表返回一個(gè)字典所有的鍵
8、radiansdict.setdefault(key, default=None):
和get()類似, 但如果鍵不已經(jīng)存在于字典中,將會(huì)添加鍵并將值設(shè)為default
9、radiansdict.update(dict2):
把字典dict2的鍵/值對(duì)更新到dict里
10、radiansdict.values():
以列表返回字典中的所有值
相關(guān)文章
詳解Python 使用 selenium 進(jìn)行自動(dòng)化測(cè)試或者協(xié)助日常工作
這篇文章主要介紹了Python 使用 selenium 進(jìn)行自動(dòng)化測(cè)試 或者協(xié)助日常工作,我們可以使用 selenium 來幫助我們進(jìn)行自動(dòng)化的 Web 測(cè)試,也可以通過 selenium 操作瀏覽器做一些重復(fù)的,簡(jiǎn)單的事情,來減輕我們的工作2021-09-09Python基于Flask框架配置依賴包信息的項(xiàng)目遷移部署
這篇文章主要介紹了Python基于Flask框架配置依賴包信息的項(xiàng)目遷移部署小技巧,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-03-03python圖形用戶界面tkinter之標(biāo)簽Label的使用說明
這篇文章主要介紹了python圖形用戶界面tkinter之標(biāo)簽Label的使用說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06Python 自制簡(jiǎn)單版《我的世界》的詳細(xì)過程
這篇文章主要介紹了教你用 Python 自制簡(jiǎn)單版《我的世界》,接下來,我們就帶你運(yùn)行這個(gè)項(xiàng)目,并對(duì)這個(gè)開源的小游戲做一下簡(jiǎn)單的更改,讓它變成“你的”世界2021-11-11Python面向?qū)ο笾畠?nèi)置函數(shù)相關(guān)知識(shí)總結(jié)
本次要總結(jié)的的內(nèi)置函數(shù)共8個(gè),他們都跟面向?qū)ο蟮闹R(shí)相關(guān),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06Python正則表達(dá)式中flags參數(shù)的實(shí)例詳解
正則表達(dá)式是一個(gè)很強(qiáng)大的字符串處理工具,幾乎任何關(guān)于字符串的操作都可以使用正則表達(dá)式來完成,下面這篇文章主要給大家介紹了關(guān)于Python正則表達(dá)式中flags參數(shù)的相關(guān)資料,需要的朋友可以參考下2022-04-04