【发布时间】:2014-01-19 16:20:50
【问题描述】:
在我使用 python 的过程中,我遇到了一个阻塞问题。我有 SomeFunction 应该对给定的整数向量进行一些简单的计算(并对它进行排序-我删除了那段代码以使其更清晰)并返回新的向量。 主要问题是,每个内部循环的结果必须成为下一个循环的输入,但变量 k 和 X 似乎在内存中具有相同的地址。
函数如下所示:
def SomeFunction(k, N):
X = range(N);
for i in range(N):
for j in range(3):
X[i] = k[i]*2;
print "X:";
print X;
print "k -> :";
print k
k = X;
print "============================";
return k;
它会产生输出:
X: [0, 1, 2, 3, 4, 5, 6, 7] k -> : [0, 1, 2, 3, 4, 5, 6, 7] ============================== X: [0, 8, 2, 3, 4, 5, 6, 7] k -> : [0, 8, 2, 3, 4, 5, 6, 7] ==============================第一个循环的输出没问题,因为第一个元素是 0,但是对于其余的循环,你可以看到问题。 X 应该有新的值,而 k 应该是相同的。有谁知道如何解决这个问题?
【问题讨论】:
-
python 不需要';'作为行终止符
-
老实说,我很难将其视为重复。有不止几个问题的答案和潜在问题与这个问题相同。但我不确定是否应该以同样的方式考虑问题或问题,即使答案是。
标签: python sorting variables overwrite