python编程问题:如下图,为什么第二个输出是5。本人之前编过C语言,应 ...
发布网友
发布时间:2024-10-01 09:41
我来回答
共1个回答
热心网友
时间:2024-11-14 01:10
d['2']=5
你不是明确给'2' 这个键赋值 5 了么?输出当然是 5 了
d2=d 这个操作,导致 d2 也指向了 d,相当于 C语言中的引用,而不是 copy,所以不管是改 d 还是改 d2,另一个也会被改掉。
如果你想保留 d2 中的值不应 d 的改变而改变,那就要复制一份:
import copy
d2 = copy.deepcopy(d)
这样,d2 和 d 就相互独立了,无论改哪一个都不影响另一个。
在 python 中,单体变量是复制,而容器形变量(tuple, list, dict等)默认都是引用,而不是复制,这点要注意,特别是容器型变量当参数传给函数的话,你在函数内修改它,别以为他的改变值局限在函数内,而是会影响到函数外该容器型变量的。这点要当心。