最小化计算时间(即:"打印"减慢计算时间)

时间:2011-11-16 19:37:27

标签: python algorithm

我有简单的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或指南?在我的例子中,“打印”循环非常昂贵,应该避免。

1 个答案:

答案 0 :(得分:1)

通过将数据附加到列表中来保存数据。然后像在第二个示例中一样打印一次。这是python中常见的习语。通常你会使用类似的东西:

print '\n'.join(milistofdatastrings)

您有scipy performance tips here的集合。我也喜欢这个numpy functions and examples的作品。

虽然没有具体数字,但您有一个python tricks for performance的集合。