Python 2.7 Python:for循环中的索引正在无故重置
首先,我想为我的英语道歉,因为它不是我的母语 我对以下代码有一个非常疯狂的问题:Python 2.7 Python:for循环中的索引正在无故重置,python-2.7,for-loop,Python 2.7,For Loop,首先,我想为我的英语道歉,因为它不是我的母语 我对以下代码有一个非常疯狂的问题: linecounter = [] for i in range(20): linecounter.append("Color "+str(i)+"\n") for line in linecounter: color_list = range(20) for j in range(len(color_list)): stri = "Color " + str(j+1)
linecounter = []
for i in range(20):
linecounter.append("Color "+str(i)+"\n")
for line in linecounter:
color_list = range(20)
for j in range(len(color_list)):
stri = "Color " + str(j+1)
if stri in line:
print j
我预期的结果是:
0
1.
2.
3.
4.
5.
6.
7.
8.
9
10
11
12
13
14
15
16
17
18
十九,
我得到的结果是:
0
1.
2.
3.
4.
5.
6.
7.
8.
0
9
0
10
0
11
0
12
0
13
0
14
0
15
0
16
0
17
0
十八
谁能告诉我我是如何得到这个结果的,或者我是如何得到我想要的结果的
我要感谢每一位回答问题的人
诚恳地说,Nikster之所以打印这些额外的零,是因为中的
操作符处理字符串的方式。当line
为“Color10”
且stri
为“Color1”
时,则如果line
中的stri求值为True,并打印j的值,此时为零
尝试使用相等比较而不是
中的。您还需要在stri
的末尾添加一个换行符,以便它们能够正确地进行比较
stri = "Color " + str(j+1) + "\n"
if stri == line:
print j
这将打印从0到18的数字。我不完全理解你想做什么,但如果你想打印19,你可以尝试不在j中添加1:
stri = "Color " + str(j) + "\n"
if stri == line:
print j
奇怪的逻辑是:
linecounter = []
for i in range(20):
linecounter.append("Color "+str(i))
for line in linecounter:
color_list = range(20)
for j in range(len(color_list)):
stri = "Color " + str(j+1)
if stri == line:
print j
谢谢你的回答,但它只解决了这个例子的问题。在我的主程序中,我从文本文件中读取行,因此这对我没有帮助。只需添加新行“\n”linecounter.append(“Color”+str(I)+“\n”)stri=“Color”+str(j+1)+“\n”
谢谢您的回答,我可以通过修改您的答案来解决我的问题