如何使这些嵌套的for循环更有效?

时间:2012-12-23 07:48:36

标签: performance optimization for-loop python-2.7

我有两个清单:

  
    
        
  1. ActiveExchange = []
  2.     
  3. ActiveStock = []
  4.        

我的代码本质上非常顺序,我正在尝试优化它:

for exchange in ActiveExchange:
    for stock in Activestock:
        ...
        ...
        ...

然而,由于for循环,它似乎非常低效。我该怎么做才能让它更有效率?

2 个答案:

答案 0 :(得分:0)

  1. 它看起来效率不高还是你运行它需要太长时间?如果你认为它效率低下 - 测试它。并且不要优化不存在的问题。您可以更有效地利用时间。
  2. 其他任何事情都与案件有关。像:

    1. 如果您在ActiveExack中为ActiveExchange中的每个elemant搜索一个或两个项目,请使ActiveStack成为哈希值。
    2. 如果你有if语句,并且语句只依赖于一个变量,那就把它作为一个变量。这样你就可以最大化brach预测。这可以由编译器自动完成。
    3. 如果您想操纵/阅读所有对 - 您无法对其进行优化。

答案 1 :(得分:0)

C / C ++和Python都有行主要数组。如果您逐步浏览数组,列表,向量等,请务必执行以下操作:

for i in range(25):
  for j in range(25):
    A[j][i] *= 1

而不是:

for i in range(25):
  for j in range(25):
    A[i][j] *= 1

这可以使性能提高3-6倍。