python中字典的问题
问题:我有一个问题:a = {1:'one',2:'two',3:'three'}
b = a
id(a)
id(b)
以上代码执行后发现id(a)和id(b)的结果一致,是不是说明两个变量a,b都是表示这个字典?
那为什么在执行完a = {}之后,b的值没有变化呢? 以为b = a是浅拷贝,他们地址是相同,所以单独改变a时,编译器回再开辟一个内存地址给a,这时a和b的地址就不一样了,所以b不变 a = {1:'one',2:'two',3:'three'}# 把变量 a 绑定到字典对象 {1:'one',2:'two',3:'three'} ,从此,a 就代表这个对象
b = a # 把变量 b 绑定到变量 a 所绑定的对象上,从此,a、b 都代表同一个字典对象
a = {} # 把变量 a 重新绑定到新的字典对象 {} 上,从此,a 代表新对象 {},b 仍然代表原来的对象 python中变量赋值,就是贴标签,
执行第一句赋值,是把标签a贴在这个字典上
执行b=a相当于把标签b也贴在了这个字典上
所以他俩的id是一样的
若再执行a={},相当于把标签a撕下来贴在另一个空字典上了,但是此时b没有改变位置,所以b没变化
这是你可以再看看他俩的id,会发现a的id改变了,b的id没有改变 喔喔,我懂了,非常感谢
页:
[1]