Python 遍歷字典的8種方法總結(jié)
方法一:for循環(huán)遍歷字典
使用for循環(huán)是最常見的遍歷字典的方法。您可以分別遍歷字典的鍵、值或鍵值對(duì)。
以下是一些示例:
#?創(chuàng)建一個(gè)示例字典 student_grades?=?{"Alice":?95,?"Bob":?88,?"Charlie":?92,?"David":?78} #?遍歷字典的鍵 for?name?in?student_grades: ????print(name) #?遍歷字典的值 for?grade?in?student_grades.values(): ????print(grade) #?遍歷字典的鍵值對(duì) for?name,?grade?in?student_grades.items(): ????print(f"{name}:?{grade}")
通過(guò)使用for循環(huán),可以輕松訪問(wèn)字典中的元素。這對(duì)于執(zhí)行各種操作,如查找、過(guò)濾或轉(zhuǎn)換字典中的數(shù)據(jù)非常有用。
方法二:字典方法items()遍歷
使用items()
方法可以一次性獲取字典中的鍵值對(duì),然后在for循環(huán)中遍歷它們。這是一種方便的方法,尤其適用于需要同時(shí)訪問(wèn)鍵和值的情況。
#?創(chuàng)建一個(gè)示例字典 student_grades?=?{"Alice":?95,?"Bob":?88,?"Charlie":?92,?"David":?78} #?使用items()方法遍歷字典 for?name,?grade?in?student_grades.items(): ????print(f"{name}:?{grade}")
items()
方法返回一個(gè)包含鍵值對(duì)的元組,可以在for循環(huán)中解包這些元組以獲取鍵和值。
方法三:字典方法keys()和values()遍歷
使用keys()
方法可以獲取字典中的鍵,使用values()
方法可以獲取字典中的值??梢苑謩e遍歷鍵和值,如下所示:
#?創(chuàng)建一個(gè)示例字典 student_grades?=?{"Alice":?95,?"Bob":?88,?"Charlie":?92,?"David":?78} #?使用keys()方法遍歷字典的鍵 for?name?in?student_grades.keys(): ????print(name) #?使用values()方法遍歷字典的值 for?grade?in?student_grades.values(): ????print(grade)
這兩種方法可以在for循環(huán)中單獨(dú)訪問(wèn)鍵或值,根據(jù)需要執(zhí)行不同的操作。
方法四:字典推導(dǎo)式
字典推導(dǎo)式是一種緊湊的方式來(lái)創(chuàng)建新的字典或從現(xiàn)有字典生成新的字典??梢栽谧值渫茖?dǎo)式中遍歷原字典的鍵和值,并根據(jù)條件創(chuàng)建新的鍵值對(duì)。
以下是一個(gè)示例:
#?創(chuàng)建一個(gè)示例字典 student_grades?=?{"Alice":?95,?"Bob":?88,?"Charlie":?92,?"David":?78} #?使用字典推導(dǎo)式創(chuàng)建新字典,只包含成績(jī)大于90的學(xué)生 top_students?=?{name:?grade?for?name,?grade?in?student_grades.items()?if?grade?>?90} print(top_students)
在上面的示例中,使用字典推導(dǎo)式創(chuàng)建了一個(gè)新的字典top_students
,其中包含成績(jī)大于90的學(xué)生。
方法五:使用enumerate()函數(shù)
enumerate()
函數(shù)可用于同時(shí)遍歷字典的鍵和值,并提供索引。這對(duì)于需要記錄元素的位置或索引的情況非常有用。
#?創(chuàng)建一個(gè)示例字典 student_grades?=?{"Alice":?95,?"Bob":?88,?"Charlie":?92,?"David":?78} #?使用enumerate()函數(shù)遍歷字典的鍵和值 for?index,?(name,?grade)?in?enumerate(student_grades.items()): ????print(f"學(xué)生#{index+1}:?{name}?-?成績(jī):?{grade}")
在上面的示例中,我們使用enumerate()
函數(shù)獲取了每個(gè)鍵值對(duì)的索引,并將其一起打印出來(lái)。
方法六:使用iteritems()(Python 2.x)
在Python 2.x中,有一個(gè)名為iteritems()
的方法,它返回一個(gè)迭代器,允許在for循環(huán)中以更高效的方式遍歷字典的鍵值對(duì)。但需要注意的是,這個(gè)方法在Python 3.x中已被廢棄,不再可用。
#?創(chuàng)建一個(gè)示例字典(僅適用于Python?2.x) student_grades?=?{"Alice":?95,?"Bob":?88,?"Charlie":?92,?"David":?78} #?使用iteritems()方法遍歷字典 for?name,?grade?in?student_grades.iteritems(): ????print(f"{name}:?{grade}")
在Python 3.x中,不再使用iteritems()
方法,而應(yīng)使用items()
方法。
方法七:使用迭代器
如果內(nèi)存限制較低或需要處理非常大的字典,可以使用迭代器來(lái)遍歷字典。iter()
函數(shù)用于創(chuàng)建字典的迭代器,然后使用next()
函數(shù)來(lái)逐個(gè)獲取鍵值對(duì)。
#?創(chuàng)建一個(gè)示例字典 student_grades?=?{"Alice":?95,?"Bob":?88,?"Charlie":?92,?"David":?78} #?創(chuàng)建字典的迭代器 iterator?=?iter(student_grades) #?遍歷字典并逐個(gè)獲取鍵值對(duì) while?True: ????try: ????????name?=?next(iterator) ????????grade?=?student_grades[name] ????????print(f"{name}:?{grade}") ????except?StopIteration: ????????break
使用迭代器可以有效地處理大型字典,因?yàn)樗粫?huì)一次性加載所有鍵值對(duì)到內(nèi)存中。
方法八:使用回調(diào)函數(shù)
回調(diào)函數(shù)是一種自定義遍歷字典的方法。可以定義一個(gè)回調(diào)函數(shù),然后在遍歷字典時(shí)調(diào)用它,以執(zhí)行自定義操作。
#?創(chuàng)建一個(gè)示例字典 student_grades?=?{"Alice":?95,?"Bob":?88,?"Charlie":?92,?"David":?78} #?定義一個(gè)回調(diào)函數(shù) def?custom_callback(name,?grade): ????print(f"{name}:?{grade}") #?遍歷字典并調(diào)用回調(diào)函數(shù) for?name,?grade?in?student_grades.items(): ????custom_callback(name,?grade)
使用回調(diào)函數(shù)可以實(shí)現(xiàn)更高度的自定義,例如將鍵值對(duì)寫入文件、將數(shù)據(jù)插入數(shù)據(jù)庫(kù)等。
總結(jié)
遍歷字典是Python中常見的操作,有多種方法可供選擇,取決于需求和代碼的簡(jiǎn)潔性。不同的方法適用于不同的情況,選擇合適的遍歷方法可以使代碼更加清晰和高效。
到此這篇關(guān)于Python 遍歷字典的8種方法總結(jié)的文章就介紹到這了,更多相關(guān)Python 遍歷字典內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Python paramiko 模塊遠(yuǎn)程執(zhí)行ssh 命令 nohup 不生效的問(wèn)題
這篇文章主要介紹了解決Python paramiko 模塊遠(yuǎn)程執(zhí)行ssh 命令 nohup 不生效的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07Pytorch Tensor的統(tǒng)計(jì)屬性實(shí)例講解
今天小編就為大家分享一篇Pytorch Tensor的統(tǒng)計(jì)屬性實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12Python 反轉(zhuǎn)字符串(reverse)的方法小結(jié)
這篇文章主要介紹了Python 反轉(zhuǎn)字符串(reverse)的方法小結(jié),需要的朋友可以參考下2018-02-02Python?Pandas實(shí)現(xiàn)將嵌套JSON數(shù)據(jù)轉(zhuǎn)換DataFrame
對(duì)于復(fù)雜的JSON數(shù)據(jù)進(jìn)行分析時(shí),通常的做法是將JSON數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為Pandas?DataFrame,所以本文就來(lái)看看將嵌套JSON數(shù)據(jù)轉(zhuǎn)換為Pandas?DataFrame的具體方法吧2024-01-01用Python按時(shí)間分割txt文件中的數(shù)據(jù)方法步驟
這篇文章主要給大家介紹了如何用Python按時(shí)間分割txt文件中的數(shù)據(jù)的方法步驟,文中通過(guò)代碼示例給大家講解的非常詳細(xì),對(duì)大家學(xué)習(xí)Python處理txt文件有一定的幫助,需要的朋友可以參考下2023-12-12Python數(shù)據(jù)操作方法封裝類實(shí)例
這篇文章主要介紹了Python數(shù)據(jù)操作方法封裝類,結(jié)合具體實(shí)例形式分析了Python針對(duì)數(shù)據(jù)庫(kù)的連接、執(zhí)行sql語(yǔ)句、刪除、關(guān)閉等操作技巧,需要的朋友可以參考下2017-06-06pandas中的DataFrame數(shù)據(jù)遍歷解讀
這篇文章主要介紹了pandas中的DataFrame數(shù)據(jù)遍歷解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12python機(jī)器學(xué)習(xí)Logistic回歸原理推導(dǎo)
這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)Logistic回歸原理推導(dǎo),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06