我写了一个这样的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次。如何优化它?
答案 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)))