Python 我们应该总是用列表理解替换for循环吗

Python 我们应该总是用列表理解替换for循环吗,python,for-loop,generator,list-comprehension,Python,For Loop,Generator,List Comprehension,我的问题和题目一样 既然for循环的执行速度更快,我们是否应该尽可能用list/dict理解替换for循环 我正在写这个项目,它需要在大量的元组列表中迭代几次,而且需要花费很长时间。所以我现在正在努力优化我的代码。我需要遍历元组列表的主要原因是,假设我有一个值,我想知道它是否在列表中,同一元组中的其他值是什么 将这些列表转换为数组或字典会有帮助吗 任何意见都将不胜感激。提前谢谢 使用字典而不是元组列表会更有效率-一般来说,从字典中获取给定键的值是O(1)(恒定速度,与dict有多大无关),而在整

我的问题和题目一样

  • 既然for循环的执行速度更快,我们是否应该尽可能用list/dict理解替换for循环 我正在写这个项目,它需要在大量的元组列表中迭代几次,而且需要花费很长时间。所以我现在正在努力优化我的代码。我需要遍历元组列表的主要原因是,假设我有一个值,我想知道它是否在列表中,同一元组中的其他值是什么

  • 将这些列表转换为数组或字典会有帮助吗

  • 任何意见都将不胜感激。提前谢谢

    使用字典而不是元组列表会更有效率-一般来说,从字典中获取给定键的值是O(1)(恒定速度,与dict有多大无关),而在整个列表中搜索元组是O(n)(这意味着随着列表的增长,效率会下降)

    列表理解而不是for循环应该不会有太大的区别,除了在列表理解中你实际上正在构建一个列表,因此如果你正在经历的循环非常大,你可能会有内存问题

    在这个场景中,听起来您应该有一个dict-顺便说一句-要将元组列表转换为dict,只需执行以下操作:

    
    dict(元组列表)
    

    您检查过发电机吗?听起来在您的场景中,在迭代之前确实不需要创建列表。请向我们展示您的代码!这有点宽泛。最好显示一个循环使用的元组列表的最小示例,以及所需的结果和当前实现。然后你可以考虑如何优化它。如果你现在编写代码要花很长时间,那么理解列表也要花很长时间——可能多多少少,但仍然是O(永远)。改变你的算法或数据结构。如果你真的试图构建一个列表,列表理解可能会改进你的代码。否则,列表理解不能替代for循环。