蟒蛇。如何让我的代码更快?

时间:2017-09-08 20:34:50

标签: python optimization

我写了一个这样的python代码(它应该将无符号值表转换为字节表):

def foo(in_value, index)
  TabOut[index*2] = in_value%255
  TabOut[index*2+1] = in_value//255



for i in range(0,1024):
  foo(tabIn[i],i)

我必须每秒运行此功能200次。如何优化它?

2 个答案:

答案 0 :(得分:1)

为了加快速度,您可以使用divmod功能:

TabOut[index * 2 + 1], TabOut[index * 2] = divmod(value, 255)

您也可以避免调用函数:

for i in range(1024):
    TabOut[index * 2 + 1], TabOut[index * 2] = divmod(tabIn[i], 255)

使用经典迭代:

for index, value in enumerate(tabIn):
    TabOut[index * 2 + 1], TabOut[index * 2] = divmod(value, 255)

答案 1 :(得分:0)

另一种方法是使用tab构造函数一次填充生成的list

from itertools import chain

tab = list(chain.from_iterable((b, a)
           for a, b in (divmod(value, 255) for value in tab_in)))