python中的字典及嵌套遍歷
python字典及嵌套遍歷
字典是另一種可變?nèi)萜髂P?,且可存?chǔ)任意類型對(duì)象。
字典的每個(gè)鍵值 key:value 對(duì)用冒號(hào) : 分割,每個(gè)鍵值對(duì)之間用逗號(hào) , 分割,整個(gè)字典包括在花括號(hào) {} 中
dict1={'apple':23,'banana':34,'cherry':6} dict2={'java':[1,2],'python':[3,4],'c++':[5,6]} dict3={'java':{'year':'1996','url':'www/baidu.com','score':[20,30,40]},'python':{'year':'1994','url' :'www/baidu.com','score':[50,60,70]}}
訪問(wèn)字典里的值
獲取字典里的值方式有兩種,一個(gè)是通過(guò)字典的key值下標(biāo)獲取對(duì)應(yīng)value,還可以通過(guò)get方法獲取對(duì)應(yīng)value
區(qū)別:
使用key下標(biāo)的方式,如果用字典里沒(méi)有的鍵訪問(wèn)數(shù)據(jù),會(huì)拋KeyError的異常。
而使用get方法,如果鍵不在字典中返回默認(rèn)值 None 或者設(shè)置的默認(rèn)值。
修改字典
dict1={'apple':23,'banana':34,'cherry':6} dict1['apple'] = 8 # 更新 dict1['orange'] = 34 # 添加
刪除字典元素
dict3 ={'java':[1,2],'python':[3,4],'c++':[5,6]} #========刪除元素 print('刪除前',dict3) del dict3['java'] print('刪除后',dict3) #=======清空字典所有條目 print('清空字典所有條目',dict3.clear()) #========刪除字典 del dict3
嵌套字典遍歷與內(nèi)置函數(shù)
items()—函數(shù) Python 字典(Dictionary) items() 函數(shù)以列表返回可遍歷的(鍵, 值) 元組數(shù)組。
#======items函數(shù) 嵌套for循環(huán) dict3={'java':{'year':'1996','url' :'www/baidu.com','score':[20,30,40]},'python':{'year':'1994','url' :'www/baidu.com','score':[50,60,70]}} for key,value in dict3.items(): print('外層key',key) print('外層value',value) for key1,value1 in value.items(): print('內(nèi)層key',key1) print('內(nèi)層value',value1)
keys() — Python 字典(Dictionary) keys() 函數(shù)以列表返回一個(gè)字典所有的鍵。values() — Python 字典(Dictionary) values() 函數(shù)以列表返回字典中的所有值。
#========方法二 使用keys() ,values() 函數(shù)獲取嵌套字典的所有key,value dict3={'java':{'year':'1996','url' :'www/baidu.com','score':[20,30,40]},'python':{'year':'1994','url' :'www/baidu.com','score':[50,60,70]}} print(dict3.keys()) for i in range(len(list(dict3.values()))): print(list(dict3.values())[i].values())
fromkeys() —Python 字典 fromkeys() 函數(shù)用于創(chuàng)建一個(gè)新字典,以序列 seq 中元素做字典的鍵,value 為字典所有鍵對(duì)應(yīng)的初始值。
seq = ('Google', 'Runoob', 'Taobao') # 不指定默認(rèn)的鍵值,默認(rèn)為 None thisdict = dict.fromkeys(seq) print ("新字典為 : %s" % str(thisdict)) # 指定默認(rèn)的鍵值 thisdict = dict.fromkeys(seq, 10) print ("新字典為 : %s" % str(thisdict))
popitem()—Python 字典 popitem() 方法返回并刪除字典中的最后一對(duì)鍵和值。
dict2={'java':[1,2],'python':[3,4],'c++':[5,6]} pop_obj=dict2.popitem() print(pop_obj) print(site)
字典的常用方法(定義、新增、刪除、更新、遍歷、嵌套等)
什么是字典?
生活中的字典:通過(guò)字去找含義。
Python的字典:通過(guò)key去找vaule
為什么需要字典?
應(yīng)用場(chǎng)景:有一份名單記錄了學(xué)生和對(duì)應(yīng)的成績(jī),現(xiàn)在需要通過(guò)Python錄入到程序中,并可以通過(guò)學(xué)生姓名找到其成績(jī)。
可以通過(guò)Key(姓名)找到value(成績(jī))
字典
一、字典的定義
1、定義字典字面量
{key:value,key:value......}
2、定義字典變量
my_dict = {key:value,key:value......}
3、定義空字典
my_dict = {} my_dict = dict()
4、通過(guò)key獲取value
例:
my_dict = {"張":99,"王":98,"李":97} score = my_dict["張"] print(score)
5、字典的嵌套
字典的key和value可以是任意數(shù)據(jù)類型(key不可為字典)
例:記錄學(xué)生各科的考試信息
my_dict = { ? ? "張":{ ? ? ? ? "語(yǔ)文":99, ? ? ? ? "數(shù)學(xué)":98 ? ? }, ? ? "王":{ ? ? ? ? "語(yǔ)文":99, ? ? ? ? "數(shù)學(xué)":98 ? ? } } score = my_dict["張"]["語(yǔ)文"] print(score)
二、常用操作
1、新增元素
語(yǔ)法:字典[key] = value
結(jié)果:字典被修改,新增元素
例:
my_dict = {"張":99,"王":98,"李":97} my_dict["劉"] = 96 print(my_dict)
2、更新元素
語(yǔ)法:字典[key] = value
結(jié)果:字典被修改,元素更新
例:
my_dict = {"張":99,"王":98,"李":97} my_dict["張"] = 96 print(my_dict)
3、刪除元素
語(yǔ)法:字典.pop(key)
結(jié)果:獲得指定key的value,字典被修改
例:
my_dict = {"張":99,"王":98,"李":97} my_dict.pop("張") print(my_dict)
4、清空字典
語(yǔ)法:字典.clear()
結(jié)果:字典被修改,元素清空
例:
my_dict = {"張":99,"王":98,"李":97} my_dict.clear() print(my_dict)
5、獲取全部的key
語(yǔ)法:字典.keys()
結(jié)果:得到全部key
例:
my_dict = {"張":99,"王":98,"李":97} print(my_dict.keys())
6、統(tǒng)計(jì)字典元素?cái)?shù)量
語(yǔ)法:len(字典)
三、字典的遍歷
1、遍歷字典的key
例:
my_dict = {"張":100,"王":100,"李":100} for keys in my_dict: ? ? print(keys)
結(jié)果:
張
王
李
2、遍歷字典的value
例:
my_dict = {"張":100,"王":100,"李":100} for values in my_dict.values(): ? ? print(values)
結(jié)果:
100
100
100
3、遍歷字典的item
例:
my_dict = {"張":100,"王":100,"李":100} for items in my_dict.items(): ? ? print(items)
結(jié)果:
('張', 100)
('王', 100)
('李', 100)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
django項(xiàng)目簡(jiǎn)單調(diào)取百度翻譯接口的方法
這篇文章主要介紹了django項(xiàng)目簡(jiǎn)單調(diào)取百度翻譯接口的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-08-08Python中使用第三方庫(kù)xlrd來(lái)讀取Excel示例
這篇文章主要介紹了Python中使用第三方庫(kù)xlrd來(lái)讀取Excel示例,本文講解了安裝xlrd、xlrd的API、使用xlrd讀取Excel代碼示例,需要的朋友可以參考下2015-04-04Python如何將給定字符串中的大寫英文字母按以下對(duì)應(yīng)規(guī)則替換
這篇文章主要介紹了Python如何將給定字符串中的大寫英文字母按以下對(duì)應(yīng)規(guī)則替換,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10Python Collatz序列實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Python Collatz序列實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10詳解Python實(shí)現(xiàn)圖像分割增強(qiáng)的兩種方法
圖像分割就是把圖像分成若干個(gè)特定的、具有獨(dú)特性質(zhì)的區(qū)域并提出感興趣目標(biāo)的技術(shù)和過(guò)程。本文將為大家分享兩個(gè)用Python實(shí)現(xiàn)像分割增強(qiáng)的方法,需要的可以參考一下2022-03-03詳解將Pandas中的DataFrame類型轉(zhuǎn)換成Numpy中array類型的三種方法
這篇文章主要介紹了詳解將Pandas中的DataFrame類型轉(zhuǎn)換成Numpy中array類型的三種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07