python最快的方法来划分多维列表

时间:2015-10-20 20:20:00

标签: python arrays cpython

处理优化划分二维列表 a = [[0,2169,5454],[1878,0,454]] 通过整数值,以获得整数结果: 现在我的循环效率非常低 - 我已经阅读了一些关于映射到int和使用列表理解的文档,但是很难理解如何使它适用于二维列表

   for row in range(0, len(a)):
      for col in range(0, len(a[row])):
          a[row][col] = int(a[row][col] / 600)

1 个答案:

答案 0 :(得分:2)

您不需要范围循环,您可以使用列表comp:

a[:] = [[ele // 600 for ele in sub] for sub in a]

a[:]将改变原始列表,就像您的代码正在使用list comp的效率一样。如果您想要进一步显着改进,请查看numpy

import numpy as np

a = np.array(a)

a //=  600

print(a)
[[0 3 9]
 [3 0 0]]