Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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 - Fatal编程技术网

python中的引用标识符

python中的引用标识符,python,Python,我有这段代码(为了简单起见,它被缩减了,所以不要关注内容): 当x=2时,在执行行B后,vLast['p2p']取结果变量的值 我知道这与引用标识符有关,但我不想在执行行C之前更改值,否则第一级“for”循环在退出之前使用不同的vLast['p2p'] 换句话说,在执行行C之前,如何不更改vLast的值 以下是x=2时上述打印的输出 2 {'p2p': 0.17517241379310347, 'nnn': 0.3451724137931035, 'ppp': 0.3451724

我有这段代码(为了简单起见,它被缩减了,所以不要关注内容):

x=2
时,在执行
行B
后,
vLast['p2p']
结果
变量的值

我知道这与引用标识符有关,但我不想在执行
行C
之前更改值,否则第一级“for”循环在退出之前使用不同的
vLast['p2p']

换句话说,在执行
行C
之前,如何不更改vLast的值

以下是
x=2时上述打印的输出

    2
    {'p2p': 0.17517241379310347, 'nnn': 0.3451724137931035, 'ppp': 0.3451724137931035, 'fff': 0.3451724137931035}
    0.17517241379310347 
    0.20750000000000002 
...

(我预计最后一行是0.17517241379310347,而不是0.207500000000000002)

您需要使用浅拷贝

vLast = vCurrent.copy() #Line C

这将把
vCurrent
的内容复制到
vLast
中,但这两个对象不会被绑定,因为它们是已知的。同样的方法也适用于列表。

您需要使用浅拷贝

vLast = vCurrent.copy() #Line C

这将把
vCurrent
的内容复制到
vLast
中,但这两个对象不会被绑定,因为它们是已知的。列表也可以使用相同的方法。

请阅读并遵循帮助文档中的发布指南,正如您创建此帐户时所建议的那样。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。@Prune,这是关于引用标识符的一般知识问题,上面的解释必须非常清楚。正如你们看到的,这篇文章的答案很简单,但非常有用。足够好;你找到解决办法了。请注意,这个问题已经处理过很多次了,而且您的代码并没有显示出问题所在。是的,答案很简单——这意味着简单的代码应该能够说明问题。请阅读并遵循帮助文档中的发布指南,正如您创建此帐户时所建议的那样。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。@Prune,这是关于引用标识符的一般知识问题,上面的解释必须非常清楚。正如你们看到的,这篇文章的答案很简单,但非常有用。足够好;你找到解决办法了。请注意,这个问题已经处理过很多次了,而且您的代码并没有显示出问题所在。是的,答案很简单——这意味着简单的代码应该能够演示这个问题。