在python中将多个列表合并为单个字典

时间:2017-02-17 12:02:57

标签: python python-2.7

我正在尝试将以下列表合并到字典中,如下所示:

resultant_dict = {}
key = [101, 102, 103]
values1 = [1,2,3]
values2 = [4,5,6]
values3 = [7,8,9]

输出应为:

output = {101: '147', 102: '258', 103: '369'}

值彼此连接。有没有一种有效的方法呢?

提前致谢!!

2 个答案:

答案 0 :(得分:4)

结果字典中的值应该是str,这很奇怪,但如果这是你想要的,你可以在一个zip和join >字典理解:

output = {k:''.join(str(x) for x in xs) for k,*xs in zip(key,values1,values2,values3)}
<{3>}中的

中的

output = {k:''.join(str(x) for x in xs) for k,xs in zip(key,zip(values1,values2,values3))}

通过使用zip(key,values1,values2,values3),我们创建一个迭代,它将生成以下形式的元组:

(101,1,4,7),(102,2,5,8),...

现在我们使用for k,*xsk与每个元组的第一个元素统一起来,其余元素存储在xs中(因此xs(1,4,7)对于第一个元组)。

现在我们使用''.join(str(x) for x in xs)xs中的所有元素转换为字符串,然后将它们连接在一起。

最后我们有k:''.join(str(x) for x in xs)字典理解语法。

答案 1 :(得分:1)

试试这个,

resultant_dict = {}
key = [101, 102, 103]
values1 = [1,2,3]
values2 = [4,5,6]
values3 = [7,8,9]

for i in range(len(key)):
    resultant_dict[key[i]]=str(values1[i])+str(values2[i])+str(values3[i])

print resultant_dict