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

2024-05-13 01:08:27 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

谢谢你。


Tags: 元素列表浮点matconsmat1
3条回答

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

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

不能从列表中减去一个数字,也不能反过来。 如果要坚持使用内置列表类型,可以使用嵌套理解来完成此操作:

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

如果您的列表可能比示例中的列表大,那么可能值得查看允许此类操作的numpy模块。

如果您做了很多这样的事情,请考虑使用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]])

相关问题 更多 >