python 划分多维列表的最快方法
python fastest way to divide multi dimensional list
处理优化划分二维列表
a = [[0, 2169, 5454], [1878, 0, 454]]
通过一个整数值,得到一个整数结果:
现在我有一个非常低效的 for 循环 - 我已经阅读了一些关于映射到 int 和使用列表理解的文档,但是很难理解如何让它适用于二维列表
for row in range(0, len(a)):
for col in range(0, len(a[row])):
a[row][col] = int(a[row][col] / 600)
你不需要范围循环,你可以使用列表 comp:
a[:] = [[ele // 600 for ele in sub] for sub in a]
a[:]
将更改原始列表,就像您的代码所做的一样,只是具有列表组合的效率。如果你想要任何真正的进一步显着改进,你应该看看 numpy。
import numpy as np
a = np.array(a)
a //= 600
print(a)
[[0 3 9]
[3 0 0]]
处理优化划分二维列表 a = [[0, 2169, 5454], [1878, 0, 454]] 通过一个整数值,得到一个整数结果: 现在我有一个非常低效的 for 循环 - 我已经阅读了一些关于映射到 int 和使用列表理解的文档,但是很难理解如何让它适用于二维列表
for row in range(0, len(a)):
for col in range(0, len(a[row])):
a[row][col] = int(a[row][col] / 600)
你不需要范围循环,你可以使用列表 comp:
a[:] = [[ele // 600 for ele in sub] for sub in a]
a[:]
将更改原始列表,就像您的代码所做的一样,只是具有列表组合的效率。如果你想要任何真正的进一步显着改进,你应该看看 numpy。
import numpy as np
a = np.array(a)
a //= 600
print(a)
[[0 3 9]
[3 0 0]]