我有一个 2D 列表,我想从 2D 列表的所有元素中减去一个浮点值:
mat = [[1, 2], [3, 4]]
cons = 13
mat1 = cons - mat
但最后一行不起作用。如何在 python 的二维列表中执行此操作?
谢谢你。
如果你做了很多这样的事情,考虑使用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]])
您不能从列表中减去一个数字或相反。如果您想坚持使用内置列表类型,您可以使用嵌套理解来执行此操作:
mat1 = [[cons - m for m in sublist] for sublist in mat]
如果您的列表可能比您示例中的列表大,则可能值得查看允许此类操作的 numpy 模块。
您可以使用嵌套列表推导:
mat1 = [[(cons - x) for x in row] for row in mat]