簡體   English   中英

從python中的2D列表的所有元素中減去一個值

[英]Subtracting a value from all elements of a 2D list in python

我有一個二維列表,我想從二維列表的所有元素中減去一個浮點值:

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 - x) for x in row] for row in mat]

您不能從列表中減去一個數字,反之亦然。 如果你想堅持內置列表類型,你可以使用嵌套理解來做到這一點:

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

如果您的列表可能比您的示例中的列表大,那么檢查 numpy 模塊可能是值得的,它允許進行此類操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM