何时使用“ For循环vs列表理解”创建新列表?

时间:2019-03-17 07:05:34

标签: python list-comprehension

Python初学者在这里;在Python3中,想了解使用这两种技术的正确时机: 1)对于循环

$ python2 -m pip --version

2)列表理解

$ python2 -m pip install ipykernel OR python2 -m pip install ipykernel --user
$ python2 -m ipykernel install --user

从一开始看起来就完全一样。两者之间有内在的区别吗?

1 个答案:

答案 0 :(得分:-1)

  

使用列表推导有什么优势?首先,您将3行代码缩减为1行,任何了解列表理解的人都可以立即识别。其次,第二个代码更快,因为Python会在向列表添加元素之前先分配列表的内存,而不必在运行时调整大小。这样也可以避免调用“追加”,这可能很便宜,但累加起来。最后,使用理解的代码被认为更像是“ Pythonic”-更适合Python的样式指南。 Python’s List Comprehensions: Uses and Advantages, Luciano Strika

列表理解:

  • 更容易阅读
  • 由于事先分配了内存,因此速度更快

For循环:

  • 更灵活