【发布时间】:2019-01-04 12:00:26
【问题描述】:
我的问题就像标题一样。
- 我们是否应该总是尝试用 list/dict 理解替换 for 循环,因为后者执行得更快?
我正在编写这个项目,该项目需要多次迭代一些庞大的元组列表,而且需要很长时间。所以我现在正在努力优化我的代码。我需要遍历元组列表的主要原因是,假设我有一个值,我想知道它是否在列表中,以及同一个元组中的另一个值是什么。
- 将这些列表转换为数组或字典会有帮助吗?
任何意见将不胜感激。提前致谢。
【问题讨论】:
-
您研究过生成器吗?听起来在您的场景中确实不需要在迭代之前创建列表。
-
请向我们展示您的代码!
-
这有点宽泛。最好显示一个您循环的元组列表的最小示例以及您想要的结果和当前的实现。然后可以考虑如何优化它。
-
如果你的代码现在需要很长时间,列表理解仍然需要很长时间——可能或多或少,但它仍然是 O(forever)。改为更改您的算法或数据结构。
-
如果您实际上是在尝试构建一个列表,列表理解可能会改进您的代码。否则,列表推导式不会替代 for 循环。
标签: python for-loop generator list-comprehension