简体   繁体   English

列出每个键具有多个值的字典

[英]list to dictionary with multiple values per key

I have a Python list which holds pairs of key/value : 我有一个包含一对键/值的Python列表:

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

I want to convert the list into a dictionary like this: 我想将列表转换成这样的字典:

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

Thks 谢谢

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()])

First of all, don't use list as a variable name as it shadows the built-in list() function. 首先,不要将list用作变量名,因为它会遮盖内置的list()函数。 Furthermore, as you can see, I've used a list comprehension to built a list with (key, value) tuples which can then be passed to the dict() function to create the desired dictionary. 此外,如您所见,我已经使用列表理解来构建具有(键,值)元组的列表,然后可以将其传递给dict()函数以创建所需的字典。

As mgilson points out, you can also use a generator expression instead of a list comprehension: 正如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())

You can use a dict comprehension in later versions of Python: 您可以在更高版本的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