从dict理解嵌套列表返回dict

时间:2017-02-17 18:06:12

标签: python python-2.7 python-3.x

my_list = [ [1,2], [2,3], [3,4] ]

# my attempt
output = { {'a':k[0], 'b':k[1]} for k in my_list }

#desired output
[ {a:1, b:2}, {a:2, b:3}, {a:3,b:4} ]

有没有办法让dict理解返回一个带有多个键的字典?

3 个答案:

答案 0 :(得分:5)

也许你想这样做:

output = [ {'a':k[0], 'b':k[1]} for k in my_list ]
#        ^                                       ^

我们称之为python中的list-comprehension。

答案 1 :(得分:3)

您的外部结构应该是输出的列表,并且您错误地尝试执行 set comprehension 而不是列表理解。这会失败,因为set元素必须是可清除的,而dicts不是可变的。此外,在这种情况下,您可以解压缩列表项以使其更清晰。

>>> [dict(a=x, b=y) for x, y in my_list]
[{'a': 1, 'b': 2}, {'a': 2, 'b': 3}, {'a': 3, 'b': 4}]

答案 2 :(得分:1)

my_list = [ [1,2], [2,3], [3,4] ]
[dict(zip(['a', 'b'], x)) for x in my_list]