Python 列表到字典,每个键有多个值

Python 列表到字典,每个键有多个值,python,list,dictionary,type-conversion,Python,List,Dictionary,Type Conversion,我有一个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'} Thks 首先,不要将list用作变量名,因为它

我有一个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'}
Thks

首先,不要将
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中使用:

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'}

如果愿意,可以将列表理解更改为生成器表达式。在这种情况下,差异可能很小,但这似乎仍然是一个好的实践。在Python 3中,您可以使用dict理解:
my_dict={k:v['value']表示k,v在lst[0]中。items()}
实际上您可以对lst[0]中的k,v执行
my_dict={k:v['value']操作。items()
在Python 2.7及更高版本中。
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'}