Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_List_Multidimensional Array - Fatal编程技术网

用Python中的另一个列表对列表列表进行求和

用Python中的另一个列表对列表列表进行求和,python,list,multidimensional-array,Python,List,Multidimensional Array,假设我有两个列表,a和b: a=[[1,2,3],[4,5,6]] b=[[7,8,9],[1,2,3]] 如果a和b都是数字列表,我可以将它们转换为数组,并使用Python获得a+b之和。然而,如果a和b是列表的列表,我似乎无法做到同样的事情。有没有类似的方法,不使用for或while cicles 编辑所需结果将为[[8,10,12],[5,7,9]] import numpy as np a = [[1,2,3],[4,5,6]] b = [[7,8,9],[1,2,3]] a=np.

假设我有两个列表,a和b:

a=[[1,2,3],[4,5,6]]

b=[[7,8,9],[1,2,3]]


如果a和b都是数字列表,我可以将它们转换为数组,并使用Python获得a+b之和。然而,如果a和b是列表的列表,我似乎无法做到同样的事情。有没有类似的方法,不使用for或while cicles

编辑所需结果将为[[8,10,12],[5,7,9]]

import numpy as np
a = [[1,2,3],[4,5,6]]

b = [[7,8,9],[1,2,3]]

a=np.array(a)
a=a.flatten()
b=np.array(b)
b=b.flatten()
c=np.add(a,b)
print(a)
print(b)
print(c)
output:
a=[1 2 3 4 5 6]
b=[7 8 9 1 2 3]
c=[ 8 10 12  5  7  9]
在此之后,如果您想要列表列表,可以对其进行如下重塑:

c=np.reshape(c,[2,3])
在此之后,如果您想要列表列表,可以对其进行如下重塑:

c=np.reshape(c,[2,3])
列表压缩:

[[a + b for a, b in zip(x, y)]for x, y in zip(a, b)]
另一种方式:

k = []
for x, y in zip(a, b):
    p = []
    for a, b in zip(x, y):
        p.append(a + b)
    k.append(p)
print(k)
列表压缩:

[[a + b for a, b in zip(x, y)]for x, y in zip(a, b)]
另一种方式:

k = []
for x, y in zip(a, b):
    p = []
    for a, b in zip(x, y):
        p.append(a + b)
    k.append(p)
print(k)

理想的结果应该是什么?与你的问题无关,为什么不使用numpy数组呢?另外,看看这是否能帮助你
[[i+j代表i,j在zip(x,y)]代表x,y在zip(a,b)]
?“我可以将它们转换为数组”-你可以将列表转换为数组-理想的结果应该是什么?与你的问题无关,为什么不使用numpy数组呢?另外,看看这是否可以帮助您
[[i+j代表i,j在zip(x,y)]代表x,y在zip(a,b)]
?“我可以将它们转换为数组”-您可以将列表转换为数组,为什么要展平然后重塑?你可以只写
np.添加(a,b)
或者只写
a+b
来获得想要的结果。是的,这可以在制作完numpy数组后完成,但我不知道他是想要1d数组还是2d数组,你可以先添加,然后展平,如果你不想重塑,op的选择op在问题中想要的结果是
[[8,10,12],[5,7,9]
,它与原始数据的形状相同。为什么要展平然后再重塑?您只需编写
np。添加(a,b)
或只是
a+b
以获得所需的结果。是的,这可以在制作完numpy数组后完成,但我不知道他是想要1d数组还是2d数组,如果你不想重塑,你可以先添加,然后展平,op的选择问题中op想要的结果是
[[8,10,12],[5,7,9]]
,与原始数据的形状相同。