Python 字典中的所有方法及用法
字典是Python中唯一內(nèi)建的映射類型。字典中沒(méi)有特殊的順序,但都是存儲(chǔ)在一個(gè)特定的鍵(key)下面,鍵可以是數(shù)字,字符串,甚至是元組
字典的使用
在某些情況下,字典比列表更加適用:
1、表示一個(gè)游戲棋盤的狀態(tài),每個(gè)鍵都是由坐標(biāo)值組成的元組
2、存儲(chǔ)文件修改時(shí)間,用文件名作為鍵;
3、數(shù)字電話\地址薄
創(chuàng)建字典的五種方式
# 字典的創(chuàng)建方式
# 方式一 {key: value}
dict1 = {'one': 1, 'two': 2, 'three': 3}
print(dict1)
# 方式二 dict(zip(keys, values))
# dict([(k, v), (k, v)])
dict2 = dict([('one', 1), ('two', 2), ('three', 3)])
print(dict2)
# dict(((k, v), (k, v)))
dict3 = dict((('one', 1), ('two', 2), ('three', 3)))
print(dict3)
# 方式三 dict(key=value)
dict4 = dict(one=1, two=2, three=3)
print(dict4)
# 方式四 字典推導(dǎo)式
lst1 = ['one', 'two', 'three']
lst2 = [1, 2, 3]
dict5 = {lst1[i]: lst2[i] for i in range(len(lst1))}
print(dict5)
# 方式五 fromkeys
# 沒(méi)有指定value,默認(rèn)None
dict6 = dict.fromkeys(['k1', 'k2', 'k3'])
print(dict6) # {'k1': None, 'k2': None, 'k3': None}
# 指定value
dict7 = dict.fromkeys(['k1', 'k2', 'k3'], 'value')
print(dict7) # {'k1': 'value', 'k2': 'value', 'k3': 'value'}
字典的示例
1. setdefault使用
# 有則不變,無(wú)則增加
dic1 = {'name': 'lucy', 'age': 18}
dic1.setdefault('age', 45) # {'name': 'lucy', 'age': 18}
dic1.setdefault('sex', '男') # {'name': 'lucy', 'age': 18, 'sex': '男'}
2. pop使用
# 按照鍵刪除鍵值對(duì),有返回值
# 如果設(shè)置了第二個(gè)參數(shù)則無(wú)論字典中有無(wú)此鍵都不會(huì)報(bào)錯(cuò)
dic2 = {'name': 'lucy', 'age': 18}
ret2 = dic2.pop('age')
print(ret2) # 18
print(dic2) # {'name': 'lucy'}
dic3 = {'name': 'lucy', 'age': 18}
ret3 = dic3.pop('sex', '沒(méi)有此鍵')
print(ret3) # 沒(méi)有此鍵
print(dic3) # {'name': 'lucy', 'age': 18}
3. clear使用
# 清空
dic4 = {'name': 'lucy', 'age': 18}
dic4.clear()
print(dic4) # {}
4. get使用
dic5 = {'name': 'lucy', 'age': 18, 'hobby_list': ['study', 'play', 'shopping']}
l1 = dic5.get('hobby_list')
print(l1) # ['study', 'play', 'shopping']
l2 = dic5.get('sex')
print(l2) # None
l3 = dic5.get('sex', '沒(méi)有此鍵')
print(l3) # 沒(méi)有此鍵
5. keys()使用
dic6 = {'name': 'lucy', 'age': 18, 'hobby_list': ['study', 'play', 'shopping']}
# 1. 特殊的數(shù)據(jù)類型,類似于列表,但是沒(méi)有索引
print(dic6.keys(), type(dic6.keys())) # dict_keys(['name', 'age', 'hobby_list']) <class 'dict_keys'>
# 2. 可以轉(zhuǎn)化成列表
l1 = list(dic6.keys())
print(l1) # ['name', 'age', 'hobby_list']
# 3. 循環(huán)遍歷
for k in dic6.keys():
print(k, end=',') # name,age,hobby_list,
for k in dic6:
print(k, end=',') # name,age,hobby_list,
6. values()使用
dic7 = {'name': 'lucy', 'age': 18, 'hobby_list': ['study', 'play', 'shopping']}
# 1. 特殊的數(shù)據(jù)類型,類似于列表,但是沒(méi)有索引
print(dic7.values()) # dict_values(['lucy', 18, ['study', 'play', 'shopping']])
# 2. 可以轉(zhuǎn)化成列表
print(list(dic7.values())) # ['lucy', 18, ['study', 'play', 'shopping']
# 3. 循環(huán)遍歷
for val in dic7.values():
print(val, end=',') # lucy,18,['study', 'play', 'shopping'],
7. items()使用
dic8 = {'name': 'lucy', 'age': 18, 'hobby_list': ['study', 'play', 'shopping']}
print(dic8.items()) # dict_items([('name', 'lucy'), ('age', 18), ('hobby_list', ['study', 'play', 'shopping'])])
for it in dic8.items():
print(it)
# ('name', 'lucy')
# ('age', 18)
# ('hobby_list', ['study', 'play', 'shopping'])
# 利用了元組的拆包
for key, value in dic8.items():
print(key, value)
# name lucy
# age 18
# hobby_list ['study', 'play', 'shopping']
8. update()使用
# 更新,有則覆蓋,無(wú)則添加
# 1. 增加鍵值對(duì)
# 方式一:
dic9 = {'name': 'lucy', 'age': 18}
dic9.update(hobby='運(yùn)動(dòng)', hight=178)
print(dic9) # {'name': 'lucy', 'age': 18, 'hobby': '運(yùn)動(dòng)', 'hight': 178}
# 方式二:
dic10 = {'name': 'lucy', 'age': 18}
dic10.update([('hobby', '運(yùn)動(dòng)'), ('hight', 178)])
print(dic10) # {'name': 'lucy', 'age': 18, 'hobby': '運(yùn)動(dòng)', 'hight': 178}
# 方式三:
dic11 = {'name': 'lucy', 'age': 18}
dic12 = {'name': 'tom', 'hight': 178}
dic11.update(dic12)
print(dic11) # {'name': 'tom', 'age': 18, 'hight': 178}
# 2. 修改鍵所對(duì)應(yīng)的值
dic13 = {'name': 'lucy', 'age': 18}
dic13.update(name='tom')
print(dic13) # {'name': 'tom', 'age': 18}
9. fromkeys()使用
# 沒(méi)有指定value,默認(rèn)None
dict14 = dict.fromkeys(['k1', 'k2', 'k3'])
print(dict14) # {'k1': None, 'k2': None, 'k3': None}
# 指定value
dict14 = dict.fromkeys(['k1', 'k2', 'k3'], 'value')
print(dict14) # {'k1': 'value', 'k2': 'value', 'k3': 'value'}
10. copy使用
# 淺拷貝 dict15 = dict(one=1, two=2, three=3) dict16 = dict15.copy() print(dict16)
11. popitem()使用
# 隨機(jī)刪除字典中的一對(duì) 鍵和值 dict17 = dict(one=1, two=2, three=3) a = dict17.popitem() print(a) print(dict17)
到此這篇關(guān)于Python 字典中的所有方法及用法的文章就介紹到這了,更多相關(guān)Python 字典方法及用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
tensorflow1.x和tensorflow2.x中的tensor轉(zhuǎn)換為字符串的實(shí)現(xiàn)
本文主要介紹了tensorflow1.x和tensorflow2.x中的tensor轉(zhuǎn)換為字符串的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
解決Tensorboard 不顯示計(jì)算圖graph的問(wèn)題
今天小編就為大家分享一篇解決Tensorboard 不顯示計(jì)算圖graph的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
Python?JMESPath庫(kù)輕松操作JSON進(jìn)行數(shù)據(jù)查詢方法實(shí)例
這篇文章主要為大家介紹了Python?JMESPath庫(kù)輕松操作JSON方法實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
詳解Python如何循環(huán)遍歷Numpy中的Array
Numpy是Python中常見(jiàn)的數(shù)據(jù)處理庫(kù),是數(shù)據(jù)科學(xué)中經(jīng)常使用的庫(kù)。在本文中,我們將學(xué)習(xí)如何迭代遍歷訪問(wèn)矩陣中的元素,需要的可以參考一下2022-04-04
python中的信號(hào)通信 blinker的使用小結(jié)
信號(hào)是一種通知或者說(shuō)通信的方式,信號(hào)分為發(fā)送方和接收方,信號(hào)的特點(diǎn)就是發(fā)送端通知訂閱者發(fā)生了什么,今天通過(guò)本文給大家介紹python中的信號(hào)通信 blinker的相關(guān)知識(shí),感興趣的朋友一起看看吧2021-10-10

