Python:覆盖两个变量

Python:覆盖两个变量,第1张

概述在我使用 python期间,我遇到了一个阻塞问题.我有一些SomeFunction应该做一些简单的计算(并且还要对它进行排序 – 我删除那段代码以使其更清晰)在整数给定的向量上并返回新的. 主要问题是,每个内部循环的结果必须成为下一个的输入,但变量k和X似乎在内存中具有相同的地址. 功能如下: def SomeFunction(k, N): X = range(N); for i 在我使用 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并不期望;在行尾.

总结

以上是内存溢出为你收集整理的Python:覆盖两个变量全部内容,希望文章能够帮你解决Python:覆盖两个变量所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1193010.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存