Akh*_*aki 1 python for-loop list
我正在运行这个 Python 代码:
numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
for numbers in numbers:
print(numbers)
for letters in letters:
print(letters)
Run Code Online (Sandbox Code Playgroud)
并得到这个输出:
1
a
b
c
2
c
3
c
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我得到这个输出。我要问的是使用具有相同名称的迭代变量与序列(列表)的效果是什么?
因为for letters in letters:初始化名称的迭代letters(这是一个list字符串)。即使letter变量被重新赋值,原始列表已经存储在for迭代器中,所以循环运行正常
第一次迭代后,名称letters不再引用您的开始列表,而是引用原始列表的最后一个元素 AKA c。由于字符串是可迭代的,因此您不会收到错误(例如,如果letters是整数列表,您会得到的那样),它只会c一遍又一遍地产生。
请注意,这for letters in letters本身没有任何意义。字母列表被正确命名letters,但变量名应该被命名letter,例如,否则会使代码不清楚。