Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在两个字典中创建多个键列表值_Python - Fatal编程技术网

Python 如何在两个字典中创建多个键列表值

Python 如何在两个字典中创建多个键列表值,python,Python,我有以下几点 d1={'a':[100300,34],'b':[200,98,45],'c':[450567300]} d2={'d':[300500234],'e':[300500234],'f':[300500234]} 想要得到 d3={'ad':[400800268],'be':[500598279],'cf':[7501067534]} 我想从以下几点开始: 对于d1中的i,j。项目: 对于d2中的x,y。items:这里,我使用嵌套理解来实现您想要的。首先,我使用zip获取d1和d2

我有以下几点

d1={'a':[100300,34],'b':[200,98,45],'c':[450567300]}

d2={'d':[300500234],'e':[300500234],'f':[300500234]}

想要得到

d3={'ad':[400800268],'be':[500598279],'cf':[7501067534]}

我想从以下几点开始: 对于d1中的i,j。项目:
对于d2中的x,y。items:

这里,我使用嵌套理解来实现您想要的。首先,我使用zip获取d1和d2中的对应项。然后,我连接它们的键,使之成为新dict的键,并使用列表理解对它们各自列表的元素求和,将其设置为新dict中的值

d3 = {
        i1[0] + i2[0]: [v1 + v2 for v1,v2 in zip(i1[1], i2[1])]
        for i1,i2 in zip(d1.items(), d2.items())
    }
# {'ad': [400, 800, 268], 'be': [500, 598, 279], 'cf': [750, 1067, 534]}

注意,在Python3.7之前,dict的“顺序”是任意的。现在,当您调用.items时,您将按最近添加或定义的顺序获取键,但在此之前,您可以按任何顺序获取键,因此上述操作将不起作用。

您可以执行以下操作:

d3 = {k1 + k2: [p + q for p, q in zip(d1[k1], d2[k2])] for k1, k2 in zip(d1.keys(), d2.keys())}

不使用字典理解:

d3 = {}
for k1, k2 in zip(d1.keys(), d2.keys()):
    d3[k1 + k2] = [p + q for p, q in zip(d1[k1], d2[k2])]
输出:

{'ad': [400, 800, 268], 'be': [500, 598, 279], 'cf': [750, 1067, 534]}

如果要保持键的顺序,请确保使用。

根据您的Python版本,这可能没有很好的定义,因为3.7之前的键顺序未指定。欢迎来到StackOverflow!请拿下,阅读,并提供。为我实现此功能对于此网站来说是离题的。你必须做出诚实的尝试,然后问一个关于你的算法或技术的具体问题。我的意思是在python 2.5中,谢谢,实际上,我正在尝试使用字典外的for循环来实现这一点。如果没有字典理解,我如何实现这一点?我在spss modeler中使用python 2.5,它既不支持dict理解,也不支持dict理解。我使用python 2.5,而是在spss modeler上使用python 2.5