簡體   English   中英

如何從字典中創建字典列表

[英]How to create a list of dictionaries from a dictionary

比方說我有這個詞典

my_dict = {'10/31/2016': 66.49746192893402, '11/14/2016': 63.95939086294417,
           '08/29/2016': 77.15736040609137}

是否可以將該字典轉換為字典列表,使其看起來像這樣。

my_list_dict = [{'attendance': 66.49746192893402, 'date': '10/31/2016'},
                {'attendance': 63.95939086294417, 'date': '11/14/2016'},
                {'attendance': 77.15736040609137, 'date': '08/29/2016'}]

代碼會是什么樣的?

當然,你可以使用列表理解來做到這一點:

[{'attendance': a, 'date': d} for d, a in my_dict.items()]

您可以使用列表推導來創建字典:

my_list_dict = [{'attendance': v, 'data': k} for k,v in my_dict.items()]

一個簡單的列表理解可以為您做到這一點:

 [{'attendance': v, 'date': k} for k, v in my_dict.items()]

這為您提供了所需的輸出:

[{'attendance': 63.95939086294417, 'date': '11/14/2016'},
 {'attendance': 77.15736040609137, 'date': '08/29/2016'},
 {'attendance': 66.49746192893402, 'date': '10/31/2016'}]

在Python2中,您還可以使用iteritems ,它將為您提供大型詞典的加速:

[{'attendance': v, 'date': k} for k, v in my_dict.iteritems()]

一個更詳細的例子,顯示迭代而不是理解。 雖然這可能更容易理解,但我會使用這種理解。

my_dict = {'10/31/2016': 66.49746192893402, '11/14/2016': 63.95939086294417,
        '08/29/2016': 77.15736040609137}

x = []
for item in my_dict:
    new_dict = {'attendance': my_dict[item], 'date': item}
    x.append(new_dict)

print(x)

暫無
暫無

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

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