我试图合并以下列表字典如下:合并多个列表分为单辞典蟒蛇
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'}
值是连击对方。有没有一种有效的方法来做到这一点?
在此先感谢!
我试图合并以下列表字典如下:合并多个列表分为单辞典蟒蛇
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'}
值是连击对方。有没有一种有效的方法来做到这一点?
在此先感谢!
这是相当奇怪的是,在所产生的字典中的值应该是str
英格斯,但如果这是你想要的,你可以在一个单一的字典解析使用zip
和join
:
output = {k:''.join(str(x) for x in xs) for k,*xs in zip(key,values1,values2,values3)}
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,*xs
统一k
每元组的第一个元素,以及剩余的元素被存储在xs
(所以xs
是(1,4,7)
用于第一元组)。
现在我们使用''.join(str(x) for x in xs)
将xs
中的所有元素转换为字符串,然后我们将它们结合在一起。
最后我们有k:''.join(str(x) for x in xs)
这是字典理解语法。
试试这个,
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
的值应该是'str'ings? –
@WillemVanOnsem:是的,它应该是字符串 – Tamil