gpt4 book ai didi

Python:覆盖两个变量

转载 作者:太空宇宙 更新时间:2023-11-03 13:18:51 34 4
gpt4 key购买 nike

在我使用 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 应该是相同的。有谁知道如何解决这个问题?

最佳答案

当你说

k = X;

您不是在 k 中创建 X 的副本,而是同时制作 Xk指向同一个列表。您可以像这样创建列表的副本

k = X[:]

注意:Python 不希望在行尾有 ;

关于Python:覆盖两个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20879224/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com