簡體   English   中英

如何從字典列表中打印字典項目

[英]How to print dictionary items from list of dictionaries

我目前有這些數據:

data = [{'name': 'Bob', 'age': 20},  {'name': 'Phil', 'age': 21},  {'name': 'Jane', 'age': 42}]

我的目標是生產以下 output:

1 - Bob is 20
2 - Phil is 21
3 - Jane is 42

任何幫助將不勝感激。

您可以使用enumerate()

data = [{'name': 'Bob', 'age': 20},
        {'name': 'Phil', 'age': 21},
        {'name': 'Jane', 'age': 42}]

for i,d in enumerate(data):
    print(f"{i+1} - {d['name']} is {d['age']}")

Output:

1 - Bob is 20
2 - Phil is 21
3 - Jane is 42

你可以這樣做:

for i, item in enumerate(data):
    print(f"{i+1} - {item['name']} is {item['age']}")
#1 - Bob is 20
#2 - Phil is 21
#3 - Jane is 42

很多時候,在處理迭代器時,我們還需要保持迭代計數。 Python 通過為此任務提供內置 function enumerate()簡化了程序員的任務。 Enumerate()方法向可迭代對象添加一個計數器,並以enumerate object的形式返回它。 這個枚舉 object 然后可以直接用於 for 循環或使用list()方法轉換為元組列表。 你可以試試:

data = [{'name': 'Bob', 'age': 20},  {'name': 'Phil', 'age': 21},  {'name': 'Jane', 'age': 42}]


for key, value in enumerate(data):
     print(f"{key+1} - {value['name']} is {value['age']}")

Output 將是:

1 - Bob is 20
2 - Phil is 21
3 - Jane is 42

您應該發布您已經嘗試過的內容。 如果你還沒有嘗試過,你應該先嘗試一下。

話雖如此,您基本上需要做兩件事:

  • 遍歷一個列表
  • 遍歷字典

假設您使用的是 python 3:

for element in data:
   for key, value in element.items():
      print(f"This is the key: {key} and this is the value: {value}")

外部循環遍歷您的數據變量,一次一個元素。 它將每個元素的值放在一個變量element中。

在這種情況下, element是一個字典。 內部循環遍歷該字典的每個組件。 字典有 2 個元素(鍵和對應的值)。 然后它將每個鍵放入變量key中,並將該鍵的相應值放入變量value中。

名稱鍵、值是任意的,如果您願意,您可以命名為 foo、bar。

請注意,無論是列表中的element還是字典中的value ,類型都可以是任何類型。

編輯:最后的印刷品為后來的 python 版本使用了整潔的格式。 您可以有一個以f開頭的字符串,然后使用 {} 將 python 表達式放在括號中。 這就是為什么 print(f"this is the {key}") 將返回變量key而不是單詞 key 本身的打印表達式。

您也可以使用此代碼

for i in range(len(data)):
print(str(i+1)+" - "+data[i]["name"]+" is "+str(data[i]["age"]))
data = [{'name': 'Bob', 'age': 20},  
        {'name': 'Phil', 'age': 21},  
        {'name': 'Jane', 'age': 42}]

for idx, dic in enumerate(data, 1):
    print(f"{idx} - dic['name'] is dic['age']")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM