我有一个包含键/值对的 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'}
谢谢
我有一个包含键/值对的 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()
函数。此外,如您所见,我使用列表推导式构建了一个包含 (key, value) 元组的列表,然后可以将其传递给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'}