Python字典簡介以及用法詳解
#!/usr/bin/env python # -*- coding:utf-8 -*- """
老規(guī)矩以下方法環(huán)境2.7.x,請3.x以上版本的朋友記得格式print(輸出內(nèi)容放入括號內(nèi))
字典的基本組成以及用法
dict = { key : value }
dict[ key ] = value
首先來說說字典是由key鍵與value值一一對應(yīng)來組成字典的基本結(jié)構(gòu)
key鍵不能由list列表,dict字典等多元素命名,
key是唯一屬性又可以稱一對一服務(wù),key相同但只會輸出一個(gè)
value值可以由一個(gè)或多元素命名,不是唯一屬性又可以稱一對多服務(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一對多的特性
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)造多級選擇
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í)會返回它默認(rèn)值None
print dic_test.get("k")
#pop用來移除字典的某個(gè)key及其value
b = dic_test.pop("b")
print dic_test,u"移除了b:",b
#item()方法把字典中每對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)建字典
字典由鍵和對應(yīng)值成對組成。字典也被稱作關(guān)聯(lián)數(shù)組或哈希表?;菊Z法如下:
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
也可如此創(chuàng)建字典:
dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };
注意:
每個(gè)鍵與值用冒號隔開(:),每對用逗號,每對用逗號分割,整體放在花括號中({})。
鍵必須獨(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ù),會輸出錯誤如下:
#!/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)容的方法是增加新的鍵/值對,修改或刪除已有鍵/值對如下實(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'];
#但這會引發(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對象,既可以是標(biāo)準(zhǔn)的對象,也可以是用戶定義的,但鍵不行。
兩個(gè)重要的點(diǎn)需要記住:
1)不允許同一個(gè)鍵出現(xiàn)兩次。創(chuàng)建時(shí)如果同一個(gè)鍵被賦值兩次,后一個(gè)值會被記住,如下實(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為字典所有鍵對應(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)存在于字典中,將會添加鍵并將值設(shè)為default
9、radiansdict.update(dict2):把字典dict2的鍵/值對更新到dict里
10、radiansdict.values():以列表返回字典中的所有值
相關(guān)文章
詳解Python 使用 selenium 進(jìn)行自動化測試或者協(xié)助日常工作
這篇文章主要介紹了Python 使用 selenium 進(jìn)行自動化測試 或者協(xié)助日常工作,我們可以使用 selenium 來幫助我們進(jìn)行自動化的 Web 測試,也可以通過 selenium 操作瀏覽器做一些重復(fù)的,簡單的事情,來減輕我們的工作2021-09-09
Python基于Flask框架配置依賴包信息的項(xiàng)目遷移部署
這篇文章主要介紹了Python基于Flask框架配置依賴包信息的項(xiàng)目遷移部署小技巧,非常不錯,具有參考借鑒價(jià)值,需要的朋友可以參考下2018-03-03
python圖形用戶界面tkinter之標(biāo)簽Label的使用說明
這篇文章主要介紹了python圖形用戶界面tkinter之標(biāo)簽Label的使用說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
Python面向?qū)ο笾畠?nèi)置函數(shù)相關(guān)知識總結(jié)
本次要總結(jié)的的內(nèi)置函數(shù)共8個(gè),他們都跟面向?qū)ο蟮闹R相關(guān),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
Python正則表達(dá)式中flags參數(shù)的實(shí)例詳解
正則表達(dá)式是一個(gè)很強(qiáng)大的字符串處理工具,幾乎任何關(guān)于字符串的操作都可以使用正則表達(dá)式來完成,下面這篇文章主要給大家介紹了關(guān)于Python正則表達(dá)式中flags參數(shù)的相關(guān)資料,需要的朋友可以參考下2022-04-04

