我想从另一个列表列表的相应元素中减去列表列表,例如:
a=[[1,2],[3,4]]
b=[[1,2],[3,0]]
预期输出为:
c=[[0,0],[0,4]]
使用一个列表从另一个列表减法很容易:
c=[i-j for i,j in zip(a,b)]
但这不适用于列表列表并返回TypeError: unsupported operand type(s) for -: 'list' and 'list'
。关于如何做的任何想法?
答案 0 :(得分:1)
使用numpy数组
>>> import numpy as np
>>> a=np.array([[1,2],[3,4]])
>>> b=np.array([[1,2],[3,0]])
>>> a-b
array([[0, 0],
[0, 4]])
答案 1 :(得分:1)
这应该做的工作:
c=[map(lambda x, y: x-y, ii, jj) for ii, jj in zip(a,b)]
答案 2 :(得分:0)
您可以使用嵌套列表推导,其中内部的对每对列表执行减法运算:
a = [[1, 2], [3, 4]]
b = [[1, 2], [3, 0]]
c = [[ii - jj for ii, jj in zip(i, j)]
for i, j in zip(a, b)]
print(c)
# [[0, 0], [0, 4]]