我有一个2D列表,我想从2D列表的所有元素中减去浮点值:
mat = [[1, 2], [3, 4]]
cons = 13
mat1 = cons - mat
但是最后一行不起作用。如何在python的2D列表中执行此操作?
谢谢。
答案 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模块,这样可以进行此类操作。