Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 原始参数被覆盖_Python_Parameter Passing - Fatal编程技术网

Python 原始参数被覆盖

Python 原始参数被覆盖,python,parameter-passing,Python,Parameter Passing,我在Python中有一个函数: def newk(kor, flds): field=0.5*flds knw=[] for i in range(flds): ktemp=kor if ktemp[2]+i>field: ktemp[2]-=(i-1) else: ktemp[2]+=i knw+=[ktemp] print knw

我在Python中有一个函数:

def newk(kor, flds):
    field=0.5*flds
    knw=[]

    for i in range(flds):
        ktemp=kor
        if ktemp[2]+i>field:
            ktemp[2]-=(i-1)
        else:
            ktemp[2]+=i
        knw+=[ktemp]
        print knw
        print ktemp
        print kor, '\n'
    return knw
其名称为:

knew=newk(kvals, folds)
由于某种原因,我的原始kvals被覆盖。Kvals是一个列表。 而且,ktemp像knw设想的那样不断累积,而且它会螺旋上升 一切都好。我的输出如下所示:

[0.05,0.05,0.166667][0.05,0.05,0.166667][0.05,0.05,0.166667]

[0.05,0.05,1.166667],[0.05,0.05,1.166667][0.05,0.05,1.166667], 1.166667][0.05,0.05,1.166667]

[0.05,0.05,-0.83333300000000001],[0.05,0.05,-0.83333300000000001], [0.05, 0.05, -0.8333330000000001]] [0.05, 0.05, -0.8333330000000001] [0.05,0.05,-0.83333300000000001]

K点值为:[0.05,0.05,-0.83333300000000001](原始kvals为
[0.05,0.05,0.166667]

但是我需要我的输出是这样的:knw应该是
[[0.05,0.05,0.166667],[0.05,0.05,1.166667],[0.05,0.05,-0.833333]
,kval应该是
[0.05,0.05,0.166667]


另外,当我将循环中的ktemp=kor更改为常数ktemp=[0.05,0.05,0.166667]时,一切都正常。

当你
ktemp=kor
时,你会得到两个指向同一个列表对象的名称&因此对
ktemp
的修改与修改
kor
相同。如果你想要列表的副本,你需要说
ktemp=kor>[:]
(假设
kor
仅仅是数字-如果您想要一个包含复杂对象的列表的“深度副本”,那是另一个问题)(假设
kor
只是数字——如果你想要一个包含复杂对象的列表的“深度副本”,那是另一个问题)(假设
kor
只是数字——如果你想要一个包含复杂对象的列表的“深度副本”,那是另一个问题)(假设
kor
只是数字-如果你想要一个包含复杂对象的列表的“深度副本”,那是另一个问题)。

欢迎这么做。这可能有助于让我们知道一开始使用的是哪种语言-最好是添加相应的标记。我想你可以删除“覆盖”当你在做的时候,这个是没有帮助的。看起来像是缩进被破坏的python。我不知道为什么它会破坏我的缩进,但是函数的主体都是缩进的。欢迎这么做。这可能有助于让我们知道哪种语言是在开始时使用的——最好是添加相应的标记。我想你可以删除“覆盖”当你在做的时候,这个是没有帮助的。看起来像是缩进被破坏的python。我不知道为什么它会破坏我的缩进,但是函数的主体都是缩进的。欢迎这么做。这可能有助于让我们知道哪种语言是在开始时使用的——最好是添加相应的标记。我想你可以删除“覆盖”当你在做的时候,这个是没有帮助的。看起来像是缩进被破坏的python。我不知道为什么它会破坏我的缩进,但是函数的主体都是缩进的。欢迎这么做。这可能有助于让我们知道哪种语言是在开始时使用的——最好是添加相应的标记。我想你可以删除“覆盖”当你在做的时候,那一个是没有帮助的。看起来像是缩进被破坏的python。我不知道为什么它会破坏我的缩进,但是函数的主体都是缩进的。非常感谢,它做到了。非常感谢,它做到了。非常感谢,它做到了。非常感谢,它做到了。非常感谢,它做到了。