python字典操作有哪些

這篇文章主要介紹“python字典操作有哪些”,在日常操作中,相信很多人在python字典操作有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”python字典操作有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)建站是專業(yè)的南丹網(wǎng)站建設(shè)公司,南丹接單;提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行南丹網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

key是否存在


使用 in 關(guān)鍵字判斷key是否存在字典中

d = {"name": "zhang", "age":10}
key = "gender"
if key in d:
pass

不要使用 key in d.keys(), 這是一種畫蛇添足的操作,因?yàn)閐.keys()會返回一個(gè)新的列表對象,導(dǎo)致內(nèi)存最大。

合并字典

>>> x = {'a': 1, 'b': 2}
>>> y = {'b': 3, 'c': 4}
>>> {**x, **y}
{'a': 1, 'b': 3, 'c': 4}

返回新的字典對象,x和y都不會改變,這是使用了PEP448范化解包操作, 如果 x 和 y 有相同的key, 那么y會覆蓋x。 如果使用字典的update 方法,將修改原來的對象,例如:

>>> y.update(x)
>>> y
{'b': 2, 'c': 4, 'a': 1}

迭代字典

z = {'b': 2, 'c': 4, 'a': 1}
>>> for key, value in z.items():
print(key, value)
b 2
c 4
a 1

也可以直接對字典z進(jìn)行迭代,每次迭代返回的是key,前面那種操作 z.items()會返回一個(gè)新的對象。

>>> for key in z:
   print(key, z[key])
b 2
c 4
a 1

字典推導(dǎo)

使用字典推導(dǎo)式快速構(gòu)建字典對象

>>> fruits = ['apple', 'mango', 'banana','cherry']
>>> {f:len(f) for f in fruits}
{'apple': 5, 'mango': 5, 'banana': 6, 'cherry': 6}

字典排序

字典本質(zhì)上是個(gè)無序的容器對象(其實(shí)Python3.6開始支持有序,不過這個(gè)有序是指按照key的添加順序),如果我們要對字典的 key 或者 value 排序,一般是將其轉(zhuǎn)換為list,再按照key或者value排序。

>>> d = {"c": 3, "a": 1, "f":6, "b": 0}
# 按照value排序
>>> sorted(d.items(), key=operator.itemgetter(1))
[('b', 0), ('a', 1), ('c', 3), ('f', 6)]
# 按照key排序
>>> sorted(d.items(), key=operator.itemgetter(0))
[('a', 1), ('b', 0), ('c', 3), ('f', 6)]
>>>

默認(rèn)值初始化字典

統(tǒng)計(jì)列表中每個(gè)字母出現(xiàn)的次數(shù)

>>> chars = ['a', 'b','c','a','d','c']
>>> data = {}
>>> for c in chars:
...     if c in data:
...         data[c]+=1
...     else:
...         data[c] = 0
...
>>> data
{'a': 1, 'b': 0, 'c': 1, 'd': 0}

可以使用 collections.defaultdict 通過工廠函數(shù)提供初始化默認(rèn)值

chars = ['a', 'b','c','a','d','c']

dd = defaultdict(int)
for c in chars:
dd[c] += 1

>>>defaultdict(<class 'int'>, {'a': 2, 'b': 1, 'c': 2, 'd': 1})

defaultdict 是 dict 的子類,繼承了 dict 的所有特性, 如果想要初始值為1 怎么辦? 可以用lambda函數(shù)來指定

dd = defaultdict(lambda: 1)
for c in chars:
dd[c] += 1

print(dd)
>>> defaultdict(<function <lambda> at 0x01226B28>, {'a': 3, 'b': 2, 'c': 3, 'd': 2})

到此,關(guān)于“python字典操作有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

分享名稱:python字典操作有哪些
地址分享:http://www.muchs.cn/article28/pgdijp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站網(wǎng)站導(dǎo)航、、網(wǎng)站設(shè)計(jì)公司、自適應(yīng)網(wǎng)站、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)