【发布时间】:2020-03-29 15:46:43
【问题描述】:
例如,我有一个2x2 维度的2D 列表存储在变量r 中。
12 24
36 48
我想将列表中的每个值除以2。一种简单的慢速方法是遍历每一行和每一列,然后除以2。
rows = 2
columns = 2
for x in range(rows):
for y in range(columns):
r[x][y] = r[x][y]/2
除了手动方法之外,是否有一种简单快捷的方法可以将2D 列表中的每个值划分为特定值?我尝试了下面的代码,但它抛出了一个错误:
s = r /2
错误:
TypeError: unsupported operand type(s) for /: 'list' and 'int'
【问题讨论】:
-
要更改每个单元格,您将始终必须触摸每个单元格,这将始终具有线性复杂性。您可以使用
numpy数组并利用计算机的并行处理能力来提高性能,但渐近复杂度将保持不变。 -
使用 numpy.它使 n 维列表的计算更快、更容易,而无需使用循环。
标签: python python-3.x list