python字典的用法_Python字典的用法详解(附示例)
本篇文章給大家?guī)淼膬?nèi)容是關(guān)于Python字典的用法詳解(附示例),有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。
字典的表現(xiàn)形式為:{key:value},鍵和值之間用冒號(hào)分隔,每個(gè)鍵值對(duì)兒之間用逗號(hào)分隔,比如{‘name’:’超人’,’age’:500},要注意key的類型必須是不可變的類型,python對(duì)key進(jìn)行哈希函數(shù)運(yùn)算,根據(jù)計(jì)算結(jié)果決定value的存儲(chǔ)地址,所以字典是無序存儲(chǔ)的。字典的增刪改查如下:
增
可以通過直接賦值的方式對(duì)字典進(jìn)行修改,當(dāng)指定的鍵不存在時(shí)則會(huì)在末尾增加一對(duì)兒鍵值dic = {'name':'劉先生','age':'39','job':'工程師','marr':'已婚'}
dic['age'] = 20
dic['lover'] = '小昭'
print(dic)
輸出:
{'name': '劉先生', 'age': 20, 'job': '工程師', 'marr': '已婚', 'lover': '小昭'}
還可以使用setdefaultv(key,value)方法來增加鍵值對(duì)兒
如果key存在則不錯(cuò)任何改動(dòng),如果key不存在,則會(huì)在末尾添加新的鍵值,并且如果不給定value的話默認(rèn)為None
一句話概括就是“有就不管他,沒有就增加”,這在循環(huán)中可以利用這一點(diǎn)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對(duì)應(yīng)的value,并且返回刪除的value,如果key不存在則會(huì)報(bào)錯(cuò)。dic = {'name':'劉先生','age':'39','job':'工程師','marr':'已婚'}
res = dic.pop('name')
print(dic,'返回值:',res)
輸出:
{'age': '39', 'job': '工程師', 'marr': '已婚'} 返回值: 劉先生
在使用pop()時(shí)還可以增加一個(gè)參數(shù)來指定返回值,如果給定的key不存在則會(huì)返回給定的返回值.這種方式非常好用,可以防止key不存在時(shí)報(bào)錯(cuò),如果存在則刪除,不存在則返回指定的字符串。dic = {'name':'劉先生','age':'39','job':'工程師','marr':'已婚'}
res = dic.pop('小三兒','查無此人')
print('返回值:',res)
輸出:
返回值: 查無此人
clear 用于清空字典。dic = {'name':'劉先生','age':'39','job':'工程師','marr':'已婚'}
dic.clear()
print(dic)
輸出:
{}
del 用于刪除指定的鍵值,如果只給出字典名字時(shí)則會(huì)刪除整個(gè)字典對(duì)象dic = {'name':'劉先生','age':'39','job':'工程師','marr':'已婚'}
del dic['name']
#del dic
print(dic)
輸出:
{'age': '39', 'job': '工程師', 'marr': '已婚'}
改: 見“增”
查:
可以直接指定鍵來訪問字典,有則返回對(duì)應(yīng)的值,沒有則報(bào)錯(cuò):dic = {'name':'劉先生','age':'39','job':'工程師','marr':'已婚'}
a = dic['name']
print(a)
輸出:
劉先生
可以通過字典的三個(gè)方法keys(),values(),items()分別查詢所有的鍵、值、鍵值對(duì)兒。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循環(huán)遍歷這三個(gè)方法來分別獲得鍵值。dic = {'name':'劉先生','age':'39','job':'工程師','marr':'已婚'}
for k in dic.keys():
print(k)
輸出:
name
age
job
marrdic = {'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)
計(jì)算字典元素個(gè)數(shù)。
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'>
因?yàn)榘裠ic轉(zhuǎn)化為字符串并賦值給a,所以可以對(duì)a進(jìn)行正則匹配
而如果直接對(duì)dic進(jìn)行正則匹配則報(bào)錯(cuò),因?yàn)閐ic不是字符串類型。
copy()
返回一個(gè)字典的淺復(fù)制
dict.fromkeys(seq,'value')
以序列seq中的元素作為字典的鍵,value為初始值 創(chuàng)建字典,如果不給參數(shù)value的話則每個(gè)鍵對(duì)應(yīng)的值為Non,注意:這是一個(gè)“類方法”,所以使用時(shí)前面要加dict.seq = ['a',1,'b']
a = dict.fromkeys(seq,'value')
print(a)
輸出:
{'a': 'value', 1: 'value', 'b': 'value'}
get(key, default=None)
返回指定鍵的值,如果鍵不存在則返回default值。
popitem()
刪除并返回字典的一個(gè)鍵值對(duì),如果字典為空則會(huì)報(bào)錯(cuò)。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])
用鍵值對(duì)兒更新字典,如果鍵已經(jīng)存在則會(huì)替換對(duì)應(yīng)的值,參數(shù)為另外一個(gè)字典或者可迭代的鍵值對(duì)兒,比如: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}
也可以用下面的方式指定鍵對(duì)應(yīng)的值,比如
dic.update(name = '李小姐',age = 22)
以上就是Python字典的用法詳解(附示例)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
本文轉(zhuǎn)載于:segmentfault思否,如有侵犯,請(qǐng)聯(lián)系a@php.cn刪除
總結(jié)
以上是生活随笔為你收集整理的python字典的用法_Python字典的用法详解(附示例)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python字典添加列表_【Python
- 下一篇: python实例属性与类属性_Pytho