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理解返回一个带有多个键的字典?
答案 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]