簡體   English   中英

列出每個鍵具有多個值的字典

[英]list to dictionary with multiple values per key

我有一個包含一對鍵/值的Python列表:

list = [ {'A': {'value': '2h25m'}, 'B': {'value': '2:45 AM'}, 
          'C': {'value': 'LAX'}, 'D': {'value': '+0100'}} ]

我想將列表轉換成這樣的字典:

d = {'A': '2h25m', 'B': '2:45 AM', 'C': 'LAX', 'D':'+0100'}

謝謝

lst = [ {'A': {'value': '2h25m'}, 'B': {'value': '2:45 AM'}, 'C': {'value': 'LAX'}, 'D': {'value': '+0100'}} ]
my_dict = dict([(k, v['value']) for k, v in lst[0].items()])

首先,不要將list用作變量名,因為它會遮蓋內置的list()函數。 此外,如您所見,我已經使用列表理解來構建具有(鍵,值)元組的列表,然后可以將其傳遞給dict()函數以創建所需的字典。

正如mgilson指出的,您還可以使用生成器表達式來代替列表推導:

lst = [ {'A': {'value': '2h25m'}, 'B': {'value': '2:45 AM'}, 'C': {'value': 'LAX'}, 'D': {'value': '+0100'}} ]
my_dict = dict((k, v['value']) for k, v in lst[0].items())

您可以在更高版本的Python中使用dict理解

In [30]: lst = [ {'A': {'value': '2h25m'}, 'B': {'value': '2:45 AM'}, 
    ...:           'C': {'value': 'LAX'}, 'D': {'value': '+0100'}} ]

In [31]: {k: v['value'] for k, v in lst[0].items()}
Out[31]: {'A': '2h25m', 'B': '2:45 AM', 'C': 'LAX', 'D': '+0100'}

暫無
暫無

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

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