我有两个嵌套的嵌套列表,如下所示:
list_1 = [[100, 90, 90, 85, 70], [100, 90, 90, 85, 80], [105, 100, 90, 90, 85]]
list_2 = [[1, 2, 2, 3, 4], [1, 2, 2, 3, 4], [1, 2, 3, 3, 4]]
我想使用list_1
和list_2
中的元素来创建字典,但它需要采用嵌套列表的形式,输出应该是这样的:
[{100:1,90:2,90:2,85:3,70:4},{100:1,90:2,90:2,85:3,80:4},{105:1,100:2,90:3,90:3,85:4}]
Python 3中有没有办法做到这一点?
答案 0 :(得分:9)
我想你想拉链拉链:
>>> [dict(zip(*z)) for z in zip(list_1, list_2)]
[{70: 4, 85: 3, 90: 2, 100: 1},
{80: 4, 85: 3, 90: 2, 100: 1},
{85: 4, 90: 3, 100: 2, 105: 1}]
或许你想要字符串,保留重复的"键":
>>> [[f'{a}:{b}' for a,b in zip(*z)] for z in zip(list_1, list_2)]
[['100:1', '90:2', '90:2', '85:3', '70:4'],
['100:1', '90:2', '90:2', '85:3', '80:4'],
['105:1', '100:2', '90:3', '90:3', '85:4']]
答案 1 :(得分:3)
另一种方法:
list(map(dict, map(zip, list_1, list_2)))
我觉得非常讨人喜欢。