我有如下列表:
A=[[1,2,3],[4,5,6],[7,8,9]]
现在我想用 B 减去 A 中的所有列表
B=[1,1,1]
得到如下结果C:
C=[[0,1,2],[3,4,5],[6,7,8]]
我知道我可以使用 zip 来做两个列表减法,但我不能直接在列表中的列表上使用它。我怎样才能做上面的减法?谢谢
请您参考如下方法:
通过zip 使用列表理解:
C = [[a-b for a, b in zip(sublist, B)] for sublist in A]
或者,使用带有 enumerate 的列表理解:
C = [[j-B[i] for i, j in enumerate(sublist)] for sublist in A]
使用第 3 方库 NumPy,您可以利用广播输出数组:
import numpy as np
A = np.array([[1,2,3],[4,5,6],[7,8,9]])
B = np.array([1,1,1])
C = A - B
print(C)
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
