Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 Python:for循环中的索引正在无故重置_Python 2.7_For Loop - Fatal编程技术网

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”
谢谢您的回答,我可以通过修改您的答案来解决我的问题