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,这是关于引用标识符的一般知识问题,上面的解释必须非常清楚。正如你们看到的,这篇文章的答案很简单,但非常有用。足够好;你找到解决办法了。请注意,这个问题已经处理过很多次了,而且您的代码并没有显示出问题所在。是的,答案很简单——这意味着简单的代码应该能够演示这个问题。