嵌套for循环中的打印(2d列表)的不稳定行为python(在循环内交换列表项)

时间:2017-02-21 16:19:06

标签: python

我尝试在两个嵌套for循环中尝试将1和2和2交换为2d列表中的1。我还在两个循环之前和之后显示列表 -

def train(cls, isSomethingTrue): #isSomethingTrue is always false
    print('before {0}'.format(cls.xtrain))
    for i in range(len(cls.xtrain)):
        print('before {0}'.format(cls.xtrain[i]))
        cls.ytrain.append([1, 0])
        if(not isSomethingTrue):
            for j in range(len(cls.xtrain[i])):
                if cls.xtrain[i][j] == 1:
                    cls.xtrain[i][j] = 2
                    continue
                elif cls.xtrain[i][j] == 2:
                    cls.xtrain[i][j] = 1
                    continue
        print('after {0}'.format(cls.xtrain[i]))
    print('after {0}'.format(cls.xtrain))

问题是外部循环只显示要交换的偶数索引(内部循环按预期工作)。怎么可能?

以下是截图 -

enter image description here

0 个答案:

没有答案