从另一个列表列表中减去一个列表列表

时间:2014-11-29 06:09:21

标签: python list python-2.7

我想从另一个列表列表的相应元素中减去列表列表,例如:

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'。关于如何做的任何想法?

3 个答案:

答案 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]]