這篇文章帶給大家的內容是關於Python字典的用法詳解(附範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
字典的表現為:{key:value},鍵和值之間以冒號分隔,每個鍵值對兒之間用逗號分隔,例如{'name':'超人','age':500},要注意key的類型必須是不可變的類型,python對key進行雜湊函數運算,根據計算結果決定value的儲存位址,所以字典是無序儲存的。字典的增刪改查如下:
增
可以透過直接賦值的方式對字典進行修改,當指定的鍵不存在時則會在末尾增加一對兒鍵值
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'} dic['age'] = 20 dic['lover'] = '小昭' print(dic) 输出: {'name': '刘先生', 'age': 20, 'job': '工程师', 'marr': '已婚', 'lover': '小昭'}
也可以使用setdefaultv(key,value)方法來增加鍵值對兒
如果key存在則不錯任何改動,如果key不存在,則會在末尾添加新的鍵值,並且如果不給定value的話默認為None
一句話概括就是“有就不管他,沒有就增加”,這在循環中可以利用這一點
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'} dic.setdefault('name','超人') dic.setdefault('lover','小姐姐') print(dic) 输出: {'name': '刘先生', 'age': '39', 'job': '工程师', 'marr': '已婚', 'lover': '小姐姐'}
刪: pop() clear del
pop 刪除指定的key對應的value,並且傳回刪除的value,如果key不存在則會報錯。
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'} res = dic.pop('name') print(dic,'返回值:',res) 输出: {'age': '39', 'job': '工程师', 'marr': '已婚'} 返回值: 刘先生
在使用pop()時也可以增加一個參數來指定回傳值,如果給定的key不存在則會傳回給定的回傳值。這種方式非常好用,可以防止key不存在時報錯,如果存在則刪除,不存在則傳回指定的字串。
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'} res = dic.pop('小三儿','查无此人') print('返回值:',res) 输出: 返回值: 查无此人
clear 用來清空字典。
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'} dic.clear() print(dic) 输出: {}
del 用來刪除指定的鍵值,如果只給字典名字時則會刪除整個字典物件
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'} del dic['name'] #del dic print(dic) 输出: {'age': '39', 'job': '工程师', 'marr': '已婚'}
改變: 見「增”
查:
可以直接指定鍵來存取字典,有則傳回對應的值,沒有則報錯:
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'} a = dic['name'] print(a) 输出: 刘先生
可以透過字典的三個方法keys(),values(),items()分別查詢所有的鍵、值、鍵值對兒。
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'} a = dic.keys() b = dic.values() c = dic.items() print('keys():',a) print('values():',b) print('items():',c) 输出: keys(): dict_keys(['name', 'age', 'job', 'marr']) values(): dict_values(['刘先生', '39', '工程师', '已婚']) items(): dict_items([('name', '刘先生'), ('age', '39'), ('job', '工程师'), ('marr', '已婚')])
也可以用for迴圈遍歷這三個方法來分別得到鍵值。
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'} for k in dic.keys(): print(k) 输出: name age job marr
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'} for v in dic.values(): print(v) 输出: 刘先生 39 工程师 已婚
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'} for k,v in dic.items(): print(k,v) 输出: name 刘先生 age 39 job 工程师 marr 已婚
字典的其他方法
#len(dict)
計算字典元素個數。
str(dict)
把字典專戶為字串,如:
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'} a = str(dic) import re res = re.search(r'name',a) print(res) 输出: <_sre.SRE_Match object; span=(2, 6), match='name'> 因为把dic转化为字符串并赋值给a,所以可以对a进行正则匹配 而如果直接对dic进行正则匹配则报错,因为dic不是字符串类型。
copy()
傳回一個字典的淺複製
dict.fromkeys(seq,'value')
#以序列seq中的元素作為字典的鍵,value為初始值創建字典,如果不給參數value的話則每個鍵對應的值為Non,注意:這是一個“類別方法”,所以使用時前面要加dict.
seq = ['a',1,'b'] a = dict.fromkeys(seq,'value') print(a) 输出: {'a': 'value', 1: 'value', 'b': 'value'}
get(key, default=None)
#傳回指定鍵的值,如果鍵不存在則傳回default值。
popitem()
刪除並傳回字典的一個鍵值對,如果字典為空則會報錯。
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'} res1 = dic.popitem() res2 = dic.popitem() res3 = dic.popitem() print(res1,res2,res3,dic) 输出: ('marr', '已婚') ('job', '工程师') ('age', '39') {'name': '刘先生'}
update([other])
用鍵值對兒更新字典,如果鍵已經存在則會取代對應的值,參數為另外一個字典或可迭代的鍵值對兒,例如:
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'} it = ((i,i**2) for i in range(1,4)) dic.update(it) print(dic) 输出: {'name': '刘先生', 'age': '39', 'job': '工程师', 'marr': '已婚', 1: 1, 2: 4, 3: 9} 也可以用下面的方式指定键对应的值,比如 dic.update(name = '李小姐',age = 22)
以上是Python字典的用法詳解(附範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!