Python:for循环在列表上的性能
在我通过for循环迭代列表理解的实例中:Python:for循环在列表上的性能,python,loops,for-loop,generator,list-comprehension,Python,Loops,For Loop,Generator,List Comprehension,在我通过for循环迭代列表理解的实例中: 执行for循环时是否缓存列表,或者每次执行时是否重新生成列表? 换句话说,这两个例子会有不同的表现吗 for x in [list comprehension] vs 我可以使用迭代器,我相信迭代器使用的是生成器,但我只是好奇这里的Python for循环执行。列表理解返回一个列表。这两个示例之间的唯一区别是,在第二个示例中将输出列表绑定到一个变量 生成器表达式返回迭代器,这意味着: 在你使用它之前,它不会被评估 如果您想多次使用它,那么每次都必
执行for循环时是否缓存列表,或者每次执行时是否重新生成列表? 换句话说,这两个例子会有不同的表现吗
for x in [list comprehension]
vs
我可以使用迭代器,我相信迭代器使用的是生成器,但我只是好奇这里的Python for循环执行。列表理解返回一个列表。这两个示例之间的唯一区别是,在第二个示例中将输出列表绑定到一个变量 生成器表达式返回迭代器,这意味着:
- 在你使用它之前,它不会被评估
- 如果您想多次使用它,那么每次都必须生成它
- 在你使用它之前,它不会被评估
- 如果您想多次使用它,那么每次都必须生成它
- 列表理解返回一个列表。这两个示例之间的唯一区别是,在第二个示例中将输出列表绑定到一个变量
生成器表达式返回迭代器,这意味着:
for x in [list comprehension]:
整个列表是在for循环开始之前生成的。除了变量赋值外,它基本上与第二个示例相同。当您这样做时
for x in [list comprehension]:
整个列表是在for循环开始之前生成的。除了变量赋值外,它基本上与第二个示例相同。使用此命令:
list\u construction=[list construction]
实际上,您创建了另一个指向已保存数组的内存部分的指针
因此的循环在两种情况下是相同的!请参阅此演示:
>>> a=[1,2,4]
>>> b=a
>>> b
[1, 2, 4]
>>> a
[1, 2, 4]
>>> a.append(7)
>>> a
[1, 2, 4, 7]
>>> b
[1, 2, 4, 7]
使用此命令:list\u construction=[list construction]
实际上,您创建了另一个指向已保存数组的内存部分的指针
因此
的循环在两种情况下是相同的!请参阅此演示:
>>> a=[1,2,4]
>>> b=a
>>> b
[1, 2, 4]
>>> a
[1, 2, 4]
>>> a.append(7)
>>> a
[1, 2, 4, 7]
>>> b
[1, 2, 4, 7]