毁人不倦 发表于 2020-10-22 11:04:50

关于字典的一点困惑想求助一下各位大神

在小甲鱼的视频里举了两个例子,我觉得这两个例子有相互矛盾之处,第一个是清除字典里的数据的时候如果直接赋值,比如a={'小甲鱼'},b=a,然后在让a={},此时输出b,依然会出现b={‘小甲鱼’},但是当用copy函数的时候,小甲鱼说直接赋值不改变id,而copy是改变id的,比如令c=a,然后再在c字典中加入一个元素,那么a相应也会加一个元素,因为id不变嘛,那为什么之前让a={}的时候,b按道理id和a一样,应该也会变成空字典呀,所以这里有点不明白,请教各位大神,谢谢!

疾风怪盗 发表于 2020-10-22 12:37:08

打印看一下id
a={'小甲鱼'}
print('a的内存地址',id(a))
b=a
c=a.copy()
print('b的内存地址',id(b))
print('c的内存地址',id(c))
a={}
print('a的内存地址',id(a))
print('b的值',b)
print('b的内存地址',id(b))
print('c的值',c)
print('c的内存地址',id(c))

a的内存地址 23195800
b的内存地址 23195800
c的内存地址 23071624
a的内存地址 13211560
b的值 {'小甲鱼'}
b的内存地址 23195800
c的值 {'小甲鱼'}
c的内存地址 23071624
页: [1]
查看完整版本: 关于字典的一点困惑想求助一下各位大神