完全理解循环python
我马上从一个小代码示例开始:完全理解循环python,python,python-3.x,for-loop,reference,Python,Python 3.x,For Loop,Reference,我马上从一个小代码示例开始: def foo(): return 0 a = [1, 2, 3] for el in a: el = foo() print(a) # [1, 2, 3] 我想知道在这种情况下,el是什么。由于a保持不变,我推断el是一个int的引用。但是在重新分配它之后,el指向一个新的int对象,它与列表a没有任何关系 如果我理解正确,请告诉我。此外,你是如何避开这个蟒蛇的?enumerate()是正确的调用吗 for i, el in enumera
def foo():
return 0
a = [1, 2, 3]
for el in a:
el = foo()
print(a) # [1, 2, 3]
我想知道在这种情况下,el是什么。由于a保持不变,我推断el是一个int的引用。但是在重新分配它之后,el指向一个新的int对象,它与列表a没有任何关系
如果我理解正确,请告诉我。此外,你是如何避开这个蟒蛇的?enumerate()是正确的调用吗
for i, el in enumerate(a):
a[i] = foo()
工作正常。是的,您理解正确
for
将目标变量el
设置为指向a
中的每个元素el=foo()
使用enumerate()
是替换a
中的引用的好方法
在这种情况下,您可能会发现Ned Batchelder提供的帮助
另一种方法是创建一个新的列表对象,并重新绑定a
以指向该列表。您可以使用列表理解构建这样的列表:
a = [foo() for el in a]