【发布时间】:2021-06-27 14:23:15
【问题描述】:
我遇到了一个问题,即 Python 中嵌套循环中的第二个 for 循环仅适用于列表中的最后一项。
input = input("Words: ")
print(input)
list = input.split('[:,\s]')
print(list)
for each in list:
for i, item in enumerate(list):
joined = each + "TEST"
print(joined)
正如您在代码中看到的那样,我试图遍历列表中的每个项目,然后在循环的每个循环中,然后我想将字符串“TEST”附加到当前首先循环的单词的末尾循环。
让我们解析一个输入,例如"aword, anotherword, yetanotherword, certainword"。我希望程序产生以下输出"awordTEST, anotherwordTEST, yetanotherwordTEST, certainwordTEST"。
这是实际的输出"aword, anotherword, yetanotherword, certainwordTEST"。
我不明白为什么第二个循环只对列表中的最后一项有效。
编辑:建议的解决方案是使用单个 for 循环。问题是我需要稍后使用第二个 for 循环,并且它在第二个 for 循环中很重要。谢谢。
【问题讨论】:
-
旁注:不要使用
list或input作为变量名;从分配给它们的那一刻起,您就无法访问input函数和list构造函数。 -
对编辑的回应:欢迎您在编写完整代码时做您想做的事,但是内部循环(除了乘以输出之外什么都不做)与您的问题无关,因此,不应成为minimal reproducible example 的一部分。
-
嗯,我没有注意到,因为这些值是分配的,这些函数后来没有使用。谢谢提醒!
-
@541daw35d:是的,在这种情况下,它起作用了(它只是在它们被命名的行之后阻止了对内置插件的访问)。如果你在一个函数中完成它,它根本不会起作用(
input = input("Words: ")会随着UnboundLocalError而死)。
标签: python list loops input split