临时数组在循环中覆盖原始数组

时间:2016-03-10 18:21:36

标签: python loops temporary

我有一个临时数组,以便在每个循环中不会覆盖原始数组。我知道这不是它实际做的,但我没有其他解释......

e = .95
f = .95
g = .95
h = .95

for a in range(0,10):
    e = e + .01
    for b in range(0,10):
        f = f + .01
        for c in range(0,10):
            g = g + .01
            for d in range(0,10):
                h = h + .01
                adj = []
                temp2 = original
                for x in temp2:
                    print x
                    x[0] = x[0] * e
                    x[4] = x[4] * e
                    x[1] = x[1] * f
                    x[5] = x[5] * f
                    x[2] = x[2] * g
                    x[6] = x[6] * g
                    x[3] = x[3] * h
                    x[7] = x[7] * h
                    x[8] = x[8] * e
                    x[12] = x[12] * e
                    x[9] = x[9] * f
                    x[13] = x[13] * f
                    x[10] = x[10] * g
                    x[14] = x[14] * g
                    x[11] = x[11] * h
                    x[15] = x[15] * h
                    adj.append(sum(x))

当我打印x时,它正在增加,好像它不是一个临时变量。

1 个答案:

答案 0 :(得分:0)

temp2不是一个单独的数组,它是对同一个数组的引用。您可能希望将x复制到temp2。一种方法是使用以下代码行:

import copy
temp2 = copy.deepcopy(original)

这假设这是您所看到的问题。根据您的描述和您的代码,目前尚不清楚究竟什么行为不符合预期。