python中dict使用方法詳解
dict的特性
dict是python中的一個(gè)可變的數(shù)據(jù)類(lèi)型,用{}表示,dict的key必須是不可變的數(shù)據(jù)類(lèi)型,而value的數(shù)據(jù)類(lèi)型可以任意。
格式:{key:value,key:value,key:value}
注: 鍵值對(duì)如果是字符串使用單引號(hào),最后一個(gè)鍵值對(duì)沒(méi)有逗號(hào)
dict的優(yōu)點(diǎn)
①:查詢(xún)速度快,可以二分查找
②:key是不可以重復(fù)的
注:
不可變數(shù)據(jù)類(lèi)型: 元組,bool,int , str 可以hash set
可變數(shù)據(jù)類(lèi)型: dict ,list
dict的方法
1,增加的方法:dict有兩種增加的方法
(1),如果沒(méi)有的鍵值對(duì),則進(jìn)行添加,如果有,則將值進(jìn)行覆蓋
dict1={'name':'jinxin','age':18,'male':'男'} print(dict1) dict1['high']=185 print(dict1) # {'name': 'jinxin', 'age': 18, 'male': '男', 'high': 185} dict1['age']=16 print(dict1) # {'name': 'jinxin', 'age': 16, 'male': '男', 'high': 185}
(2),如果有鍵值對(duì),不做任何改變,沒(méi)有鍵值對(duì),才進(jìn)行添加
dict1.setdefault("weight") print(dict1) #{'name': 'jinxin', 'age': 16, 'male': '男', 'high': 185, 'weight': None} dict1.setdefault('weight','65kg') print(dict1) #{'name': 'jinxin', 'age': 16, 'male': '男', 'high': 185, 'weight': None} dict1.setdefault('address','北京') print(dict1) #{'name': 'jinxin', 'age': 16, 'male': '男', 'high': 185, 'weight': None, 'address': '北京'}
2,dict的刪除方法
(1),使用pop()刪除,如果有鍵,則刪除,如果沒(méi)有則會(huì)報(bào)錯(cuò),如果不希望出現(xiàn)報(bào)錯(cuò)信息,可以在刪除的后面添加信息
delDict={'name': 'jinxin', 'age': 16, 'male': '男', 'high': 185, 'weight': None, 'address': '北京'} # delDict.pop('age') #dict的刪除操作是有返回值的 print(delDict.pop('age')) # 16 print(delDict) #{'name': 'jinxin', 'male': '男', 'high': 185, 'weight': None, 'address': '北京'} print(delDict.pop('職業(yè)','沒(méi)有此鍵')) #沒(méi)有此鍵
(2),使用popitem()刪除,隨機(jī)刪除,返回的是一個(gè)元組,元組里面存儲(chǔ)的刪除的鍵值,推薦使用pop()方法進(jìn)行刪除
print(delDict.popitem()) # ('address', '北京')
隨機(jī)刪除,返回值是刪除的鍵值對(duì)
print(delDict) #{'name': 'jinxin', 'male': '男', 'high': 185, 'weight': None}
(3),使用del()刪除,del()可以刪除整個(gè)字典,也可以刪除字典的某個(gè)鍵,如果刪除的鍵不存在,則會(huì)出現(xiàn)報(bào)錯(cuò)
del delDict['name'] print(delDict) #{'male': '男', 'high': 185, 'weight': None} #使用del清空列表 del delDict print(delDict) #delDict已經(jīng)刪除,報(bào)錯(cuò)
(4),清空列表也可以使用clear()
3,dict的修改
#直接修改 updateDict={'name':'jinxin','age':18,'male':'男'} updateDict['name']='Jordan' print(updateDict['name']) #Jordan #調(diào)用update()修改 dictDemo={'name':"Jordan",'age':18} dictDemo1={'address':'北京海淀','age':22} dictDemo.update(dictDemo1) print(dictDemo)
4,字典的查詢(xún)
(1)查詢(xún)字典的鍵:調(diào)用keys()方法
查詢(xún)字典的值:調(diào)用values()方法
# 字典的查 dict1={'name':'jinxin','age':18,'male':'男'} print(dict1.keys()) #dict_keys(['name', 'age', 'male']) print(dict1.values()) #dict_values(['jinxin', 18, '男']) print(dict1.items())# dict_items([('name', 'jinxin'), ('age', 18), ('male', '男')]) #打印dict1的鍵 for i in dict1.keys(): print(i ) # name age value #打印dict的值 for v in dict1.values(): print(v) #jinxin 18 男 #打印字典的鍵值: dict1={'name':'jinxin','age':18,'male':'男'} for i in dict1.items(): print(i) # ('name', 'jinxin') ('age', 18) ('male', '男') for k,v in dict1.items(): print(k,v) # name jinxin age 18 male 男
(2),字典的get()方法:使用get()方法可以查詢(xún)某個(gè)鍵是否存在,如果不存在此鍵,則會(huì)返回None,但是可以在get()方法中添加信息避免出現(xiàn)None
dict1={'name':'jinxin','age':18,'male':'男'} print(dict1.get('name')) #jinxin print(dict1.get('address')) # None print(dict1.get('address','沒(méi)有此鍵')) #沒(méi)有此鍵
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于OpenCV的攝像頭測(cè)距的實(shí)現(xiàn)示例
本文主要介紹了基于OpenCV的攝像頭測(cè)距的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01Python使用random.shuffle()打亂列表順序的方法
今天小編就為大家分享一篇Python使用random.shuffle()打亂列表順序的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11Python操作PDF實(shí)現(xiàn)制作數(shù)據(jù)報(bào)告
Python操作PDF的庫(kù)有很多,比如PyPDF2、pdfplumber、PyMuPDF等等。本文將利用FPDF模塊操作PDF實(shí)現(xiàn)制作數(shù)據(jù)報(bào)告,感興趣的小伙伴可以嘗試一下2022-12-12python使用matplotlib定制繪圖的線(xiàn)型、標(biāo)記類(lèi)型
這篇文章主要給大家詳細(xì)介紹了python使用matplotlib定制繪圖的線(xiàn)型、標(biāo)記類(lèi)型,文中有詳細(xì)的代碼示例,具有一定的參考價(jià)值,需要的朋友可以參考下2023-07-07Python報(bào)錯(cuò)no?module?named?torch的幾種原因及解決方案
這篇文章主要給大家介紹了關(guān)于Python報(bào)錯(cuò)no?module?named?torch的幾種原因及解決方案,這是小白時(shí)常犯的錯(cuò),這個(gè)報(bào)錯(cuò)一般說(shuō)明在你電腦當(dāng)前環(huán)境下沒(méi)有安裝torch這個(gè)模塊,但也有其他情況,需要的朋友可以參考下2023-10-10Python利用pynput實(shí)現(xiàn)劃詞復(fù)制功能
這篇文章主要為大家想詳細(xì)介紹了Python如何利用pynput實(shí)現(xiàn)劃詞復(fù)制功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-05-05Python 操作mysql數(shù)據(jù)庫(kù)查詢(xún)之fetchone(), fetchmany(), fetchall()用法示例
這篇文章主要介紹了Python 操作mysql數(shù)據(jù)庫(kù)查詢(xún)之fetchone(), fetchmany(), fetchall()用法,結(jié)合實(shí)例形式分析了Python使用pymysql模塊的fetchone(), fetchmany(), fetchall()方法進(jìn)行mysql數(shù)據(jù)庫(kù)查詢(xún)的操作技巧,需要的朋友可以參考下2019-10-10在Python中使用mongoengine操作MongoDB教程
這篇文章主要介紹了在Python中使用mongoengine操作MongoDB教程,包括在Django下的一些使用技巧,需要的朋友可以參考下2015-04-04Python編碼規(guī)范擺脫P(yáng)ython編碼噩夢(mèng)
Python 中編碼問(wèn)題,一直是很多 Python 開(kāi)發(fā)者的噩夢(mèng),盡管你是工作多年的 Python 開(kāi)發(fā)者,也肯定會(huì)經(jīng)常遇到令人神煩的編碼問(wèn)題,收藏這篇文章以后你可以不用再Google2021-10-10