簡體   English   中英

在字典python中循環

[英]loop inside a dictionary python

我剛剛開始學習Django和Python……已經兩個月了。 我正在做自己的個人項目之一,我在其中一節中查詢網絡服務並將結果傳遞回模板。

Web服務正在返回如下字典。

x =  {'ID':[{
    'key-1': 'First Name',
    'key-2': 'John'
},{
    'key-1': 'Last Name',
    'key-2': 'Doe'
},{
    'key-1': 'Age',
    'key-2': '25'
}]

我期望對字典中的列表進行迭代,並創建自己的字典,如下所示:

d = {'First Name': 'John', 'Last Name': 'Doe', 'Age': '25' }

我不確定我缺少什么,有人可以幫助我學習如何構建字典嗎?

嘗試dict理解並用key-1 as the key and key-2`作為值構建一個新字典。

x = {'ID':[{
    'key-1': 'First Name',
    'key-2': 'John'
},{
    'key-1': 'Last Name',
    'key-2': 'Doe'
},{
    'key-1': 'Age',
    'key-2': '25'
}]}


print({el['key-1']: el['key-2'] for el in x['ID']})

結果

{“年齡”:“ 25”,“名字”:“約翰”,“姓氏”:“母鹿”}

警告:請注意字典的values排序方法。

訂購規則2.x文檔3.x文檔

EDIT2:

為了避免字典排序和提供的解決方案引起任何怪異,請將數據包裝到OrderedDict中

from collections import OrderedDict

x = {'ID':[OrderedDict({
         'key-1': 'First Name',
         'key-2': 'John'
         }),OrderedDict({
         'key-1': 'Last Name',
         'key-2': 'Doe'
         }),OrderedDict({
         'key-1': 'Age',
         'key-2': '25'
        })]}

dict()是類似這樣的不錯的選擇:

d = dict(each.values() for each in x['ID'])

輸出:

{'Age': '25', 'First Name': 'John', 'Last Name': 'Doe'}

暫無
暫無

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

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