遍歷Python字典

前言

一個Python字典短則包含一個鍵值對,長則可能數以百萬計。所以我們不會遍歷字典可不行。因爲Python字典是由一系列鍵值對組成的,所以我們可以遍歷字典的所有鍵值對、鍵或值。

1.遍歷字典中所有的鍵值對

我們還是從一個學生字典開始:

student = {'num': '123456', 'name': 'kelvin', 'age': 18}

前面文章中我們知道怎麼訪問student字典中任何一項的信息,但如果要想訪問字典中的所有信息該怎麼辦呢?

我們可以使用一個 for 循環來遍歷這個字典:

student = {'num': '123456', 'name': 'kelvin', 'age': 18}

for key, value in student.items():
    print("\nKey: " + key)
    print("Value: " + str(value)) # 因爲age對應的是數字類型,所以用str()方法將其轉化成字符串

從代碼可以看到,我們聲明瞭兩個變量 keyvalue 去存儲鍵值對中的鍵和值。它們可以任意取名

你甚至可以這樣寫:

for a, b in student.items():

這樣寫是沒有關係的,不過爲了見名知義,我還是建議叫 keyvalue

眼尖的小夥伴可能注意到 in 後面跟着的不是字典本身,而是 student.items(),它返回的是一個鍵值對列表,事實上如果你 print(student.items())的話,輸出結果如下:

dict_items([('num', '123456'), ('name', 'kelvin'), ('age', 18)])

可見確實是鍵值對組成的元組列表。

接下來,for 循環依次將每一個鍵值對元組存儲到指定的兩個變量中(keyvalue)。

運行上述遍歷student字典的代碼:

在這裏插入圖片描述

注意:遍歷字典時,鍵值對的返回順序可能會與存儲順序不同。事實上,這點對我們編寫程序並無影響。

2.遍歷字典的所有鍵

有的時候,我們可能並不關心值是多少,可以使用方法 keys()keys() 方法會返回一個鍵列表。

student = {'num': '123456', 'name': 'kelvin', 'age': 18}

for key in student.keys():
    print(key)

上述代碼會打印出字典中所有的鍵:

圖2-1

與遍歷所有鍵值對代碼進行比較,會發現 for 後面僅跟着一個變量,而且 in 關鍵字後面遍歷的對象是 student.keys(),我們試着 print(student.keys()) 可以看到 keys() 方法返回的是一個鍵列表

圖2-2

我們甚至可以把 keys() 方法省略,因爲遍歷字典的時候,如果你在 for 後面僅聲明一個變量,Python會默認遍歷所有的鍵並依次將鍵賦值給這個變量。

因此,我們代碼也可以這樣寫:

student = {'num': '123456', 'name': 'kelvin', 'age': 18}
for key in student:
    print(key)

輸出結果和上面是一樣的。

Python提供了非常靈活的語法,你可以自由地選擇自己喜歡的寫法。

3.遍歷字典中的所有值

有時候我們僅需要遍歷字典中的所有值而不關心鍵到底是什麼,可以使用方法 values()values() 方法會返回一個值列表。

如果我們想打印出學生字典中所有的值:

student = {'num': '123456', 'name': 'kelvin', 'age': 18}

for value in student.values():
    print(value)

運行這段代碼,效果如下:

在這裏插入圖片描述
確實打印出了student字典裏所有的值。

能夠打印出所有值的關鍵在於 student.values() 方法返回了一個值列表。

在這裏插入圖片描述

Python遍歷這個值列表並依次將值賦給 value 變量,然後打印輸出。

結尾語

本文主要講解了Python遍歷字典的三種方式,應該還是比較簡單的。

筆者一直力求將複雜艱澀的概念講得淺顯易懂,但因爲個人能力或許考慮的並不周全。如果您對文中講的內容有任何疑惑,歡迎私信和我交流。

猿天罡

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章