gpt4 book ai didi

Python For 循环(迭代变量名 = 列表名)

转载 作者:太空宇宙 更新时间:2023-11-04 09:49:55 26 4
gpt4 key购买 nike

我正在运行这段 Python 代码:

numbers = [1, 2, 3]
letters = ['a', 'b', 'c']

for numbers in numbers:
print(numbers)
for letters in letters:
print(letters)

得到这个输出:

1
a
b
c
2
c
3
c

我不明白为什么会得到这个输出。我想问的是使用与序列(列表)同名的迭代变量有什么影响?

最佳答案

  • 为什么第一次就成功了?

因为 for letters in letters: 初始化名称 letters 上的迭代(这是一个 list 字符串)。即使重新分配了 letter 变量,原始列表已经存储在 for 迭代器中,因此循环正常运行

  • 为什么它在下一次不起作用/如此奇怪地起作用?

第一次迭代后,名称 letters 不再引用您的起始列表,而是引用原始列表的最后一个元素,即 c。由于字符串是可迭代的,您不会得到错误(例如,如果 letters 是整数列表,您会得到错误),它只会产生 c 一遍又一遍。

注意 for letters in letters 本身是没有意义的。字母列表正确命名为letters,但变量名称应命名为letter,例如,否则会使代码不清楚。

关于Python For 循环(迭代变量名 = 列表名),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48193704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com