我有一个临时数组,以便在每个循环中不会覆盖原始数组。我知道这不是它实际做的,但我没有其他解释......
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时,它正在增加,好像它不是一个临时变量。
答案 0 :(得分:0)
temp2
不是一个单独的数组,它是对同一个数组的引用。您可能希望将x
复制到temp2
。一种方法是使用以下代码行:
import copy
temp2 = copy.deepcopy(original)
这假设这是您所看到的问题。根据您的描述和您的代码,目前尚不清楚究竟什么行为不符合预期。