Python:覆盖两个变量
发布时间:2020-12-20 11:32:32 所属栏目:Python 来源:网络整理
导读:在我使用 python期间,我遇到了一个阻塞问题.我有一些SomeFunction应该做一些简单的计算(并且还要对它进行排序 – 我删除那段代码以使其更清晰)在整数给定的向量上并返回新的. 主要问题是,每个内部循环的结果必须成为下一个的输入,但变量k和X似乎在内存中具有
在我使用
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,7] ============================ X: [0,8,7] ============================ 第一个循环的输出是可以的,因为第一个元素是0,但是对于其余的循环,你可以看到问题. X应该有新值,而k应该是相同的.有谁有任何想法如何解决这个问题? 解决方法
当你说
k = X; 您没有在X中创建X的副本,但是您正在使X和k指向同一列表.您可以像这样创建列表的副本 k = X[:] 注意:Python并不期望;在行尾. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |