首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使这些嵌套的for-循环更有效?

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

Stack Overflow用户
提问于 2012-12-23 07:48:36
回答 2查看 1.9K关注 0票数 0

我有两份名单:

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

我的代码在本质上是非常连续的,我正在尝试优化它:

代码语言:javascript
复制
for exchange in ActiveExchange:
    for stock in Activestock:
        ...
        ...
        ...

然而,由于for-循环,它似乎效率很低。我能做些什么使它更有效率地运行呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-23 08:00:16

  1. 它只是看上去没有效率,还是你运行它花了太长时间?如果你只是觉得它没有效率-测试它。也不要把一个不存在的问题搞得头脑发热。你可以更有效地利用你的时间。

任何事情都将取决于案例。比如:

  1. 如果您在ActiveStack中为ActiveExchange中的每个项目搜索一个或两个项,则将ActiveStack设置为一个哈希。
  2. 如果您有If语句,并且该语句仅依赖于一个变量,则将其设为outter变量。这样你就可以预测布拉奇了。这可以由编译器自动完成。
  3. 如果要操作/读取所有对,则不能对其进行优化。
票数 0
EN

Stack Overflow用户

发布于 2013-11-03 03:25:45

C/C++和Python是主要的行数组。如果您正在遍历数组、列表、向量等,请确保这样做:

代码语言:javascript
复制
for i in range(25):
  for j in range(25):
    A[j][i] *= 1

而不是:

代码语言:javascript
复制
for i in range(25):
  for j in range(25):
    A[i][j] *= 1

这可以使3-6倍的性能差异。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14009473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档