在 Python For 循环中重用迭代器变量
Reusing Iterator Variables in Python For Loops
在 Python v2.7.3 中,我可以像这样重复使用迭代器变量吗?
for i, name in enumerate(listOfNames):
...
然后再做:
for i, address in enumerate (addressList):
...
什么迭代器变量?你没有重复使用任何东西。您正在调用 enumerate
两次,因此它将产生两个单独的生成器。
如果你做了这样的事情,你唯一会惹上麻烦的方法就是
>>> listOfNames = ['bob', 'mike', 'steve']
>>> e = enumerate(listOfNames)
>>> for i, name in e:
print(i)
0
1
2
>>> for i, name in e:
print(i)
# prints nothing
请注意,我们将 enumerate
调用的 return 值分配给变量 e
。如果您尝试对该变量进行两次迭代,第二次将一无所获。在你的情况下,你不会运行进入这个问题
*>对于 i,枚举中的名称(listOfNames):
...
for i, address in enumerate (listofAddress):
...
好的,关于你的情况,我想说的是,这是两个不同的 for 循环与两个不同的迭代器结合使用 enumerate() 方法。它们实际上并没有相互组合。
这是您的案例 运行 在我的电脑上的具体示例和屏幕截图:
如果您可以从 url 中查看此内容,请:
https://i.stack.imgur.com/6U1CJ.png
从截图中可以看出,对于这两种情况:
第一个产生列表名称及其索引的是 [i],
第二个尝试做与名为 listofAddress 的列表中相同的事情,并最终生成索引及其地址值。
所以你可以看到,即使对于名为 i 的“同名”变量,这也是来自两个列表的两个完全不同的结果;
但实际上它们是不同的,因为它们都是代表值在各自特定Lists中的索引,一个是[listofNames]的索引,一个是[listofAddress]的索引],所以他们是不同的,对吧?
在 Python v2.7.3 中,我可以像这样重复使用迭代器变量吗?
for i, name in enumerate(listOfNames):
...
然后再做:
for i, address in enumerate (addressList):
...
什么迭代器变量?你没有重复使用任何东西。您正在调用 enumerate
两次,因此它将产生两个单独的生成器。
如果你做了这样的事情,你唯一会惹上麻烦的方法就是
>>> listOfNames = ['bob', 'mike', 'steve']
>>> e = enumerate(listOfNames)
>>> for i, name in e:
print(i)
0
1
2
>>> for i, name in e:
print(i)
# prints nothing
请注意,我们将 enumerate
调用的 return 值分配给变量 e
。如果您尝试对该变量进行两次迭代,第二次将一无所获。在你的情况下,你不会运行进入这个问题
*>对于 i,枚举中的名称(listOfNames): ...
for i, address in enumerate (listofAddress): ...
好的,关于你的情况,我想说的是,这是两个不同的 for 循环与两个不同的迭代器结合使用 enumerate() 方法。它们实际上并没有相互组合。
这是您的案例 运行 在我的电脑上的具体示例和屏幕截图:
如果您可以从 url 中查看此内容,请: https://i.stack.imgur.com/6U1CJ.png
从截图中可以看出,对于这两种情况: 第一个产生列表名称及其索引的是 [i], 第二个尝试做与名为 listofAddress 的列表中相同的事情,并最终生成索引及其地址值。
所以你可以看到,即使对于名为 i 的“同名”变量,这也是来自两个列表的两个完全不同的结果;
但实际上它们是不同的,因为它们都是代表值在各自特定Lists中的索引,一个是[listofNames]的索引,一个是[listofAddress]的索引],所以他们是不同的,对吧?