我有简单的fibonacci(n)函数,它返回第n个值。 main()代码如下:
def main():
# Programming 101, basic recursion
start = time.clock()
for i in range(36):
print fibonacci(i)
end = time.clock()
print "Time elapsed = ", end - start, "seconds"
# Basic tweak no.1
start2 = time.clock()
list_fib = []
for i in range(36):
list_fib.append(fibonacci(i))
print list_fib
end2 = time.clock()
print "Time elapsed = ", end2 - start2, "seconds"
Windows和Windows上的典型输出Linux操作系统:
....
9227465
Time elapsed = 0.246583058361 seconds
[0, 1, 1, ....
Time elapsed = 0.00865510658878 seconds
问题:Python的数字配方是否有HOWTO或指南?在我的例子中,“打印”循环非常昂贵,应该避免。
答案 0 :(得分:1)
通过将数据附加到列表中来保存数据。然后像在第二个示例中一样打印一次。这是python中常见的习语。通常你会使用类似的东西:
print '\n'.join(milistofdatastrings)
您有scipy performance tips here的集合。我也喜欢这个numpy functions and examples的作品。
虽然没有具体数字,但您有一个python tricks for performance的集合。