首先,我想为我的英语道歉,因为它不是我的母语。
我在使用以下代码时遇到了一个非常棘手的问题:
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 五 6 7 8 9 10 11 12 13 14 15 16 17 18 19
我得到的结果: 0 1 2 3 4 五 6 7 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 16 0 17 0 18
有人可以告诉我如何得到这个结果或我如何得到我想要的结果?
我要感谢所有回答的人。
真诚的,Nikster
答案 0 :(得分:1)
由于in
运算符对字符串起作用的方式,正在打印这些额外的零。当line
为"Color10"
且stri
为"Color1"
时,则if stri in line
计算为True,并打印j的值,此时为零。< / p>
尝试使用等式比较而不是in
。您还需要在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
答案 1 :(得分:0)
奇怪的逻辑但是:
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