Skip to main content
 首页 » 编程设计

python之在 Python 中用相同的列表减去列表中的列表

2025年05月04日21落叶无声

我有如下列表:

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]])