今天在实际脚本中遇到了一个python的变量赋值的坑,将字典从一个变量a赋值给另外一个变量b之后,修改了原始变量a的值,本意是保持b变量为原始值不动,结果修改a之后发现b的值也随着改变了,经过一番查询以及自己的测试之后,确认原来python中的list和dict数据类型采用的是浅拷贝。 列表的具体测试如下: >>> a = ['1'] >>> b = a >>> a.append('2') >>> a ['1', '2'] >>> b ['1', '2'] 可以看到当改变a的值时,b的值也跟着一起改变了。 再看字典的例子: >>> ar = {'x':'1','y':'2'} >>> br = ar >>> br {'y': '2', 'x': '1'} >>> ar['x'] = '3' >>> br {'y': '2', 'x': '3'} >>> ar {'y': '2', 'x': '3'} 其实还可以有更简单的验证方式,即查看变量的id值:

阅读全文

© 2023 Yullin. All Rights Reserved
作者的图片

Yullin

Learn To Live

DevOps

China