
主要问题是,每个内部循环的结果必须成为下一个的输入,但变量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并不期望;在行尾.
总结以上是内存溢出为你收集整理的Python:覆盖两个变量全部内容,希望文章能够帮你解决Python:覆盖两个变量所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)