当尝试使用 python 2.7 的内置sum函数展平列表列表时,我遇到了一些性能问题 - 不仅计算速度慢,而且迭代方法产生了更快的结果。
下面的简短代码似乎说明了这种性能差距:
import timeit
def sum1(arrs):
return sum(arrs, [])
def sum2(arrs):
s = []
for arr in arrs:
s += arr
return s
def main():
array_of_arrays = [[0] for _ in range(1000)]
print timeit.timeit(lambda: sum1(array_of_arrays), number=100)
print timeit.timeit(lambda: sum2(array_of_arrays), number=100)
if __name__=='__main__':
main()
Run Code Online (Sandbox Code Playgroud)
在我的笔记本电脑上,我得到输出:
>> 0.247241020203
>> 0.0043830871582
Run Code Online (Sandbox Code Playgroud)
谁能向我解释一下为什么会这样?
python-2.7 ×1