从python中的2D列表的所有元素中减去一个值

时间:2013-09-03 11:59:35

标签: python list

我有一个2D列表,我想从2D列表的所有元素中减去浮点值:

mat = [[1, 2], [3, 4]]
cons = 13
mat1 = cons - mat

但是最后一行不起作用。如何在python的2D列表中执行此操作?

谢谢。

3 个答案:

答案 0 :(得分:4)

如果您做了很多这样的事情,请考虑使用numpy

In [1]: import numpy as np

In [2]: mat = np.array([[1, 2], [3, 4]])

In [3]: cons = 13

In [4]: cons-mat
Out[4]: 
array([[12, 11],
       [10,  9]])

答案 1 :(得分:2)

您可以使用嵌套列表理解:

mat1 = [[(cons - x) for x in row] for row in mat]

答案 2 :(得分:2)

您无法从列表中减去数字,反之亦然。 如果你想坚持内置列表类型,你可以用嵌套的理解来做到这一点:

mat1 = [[cons - m for m in sublist] for sublist in mat]

如果您的列表可能大于示例中的列表,那么可以查看numpy模块,这样可以进行此类操作。