python 中的list和dict是当其作为参数进行传递的时候,是引用传递。
何谓引用传递?
何谓引用传递?
就是函数内部对list和dict参数的修改和删除操作会影响到实参。
例如:
def change_list(_list):
_list.append('a')
def change_dict(dic):
dic['name'] = 'root'
if __name__ == '__main__':
lists = [1,2,3]
dicts = {'name':'test','age':11}
change_list(lists)
change_dict(dicts)
print(lists)
print(dicts)
运行结果:
[1, 2, 3, 'a']
{'age': 11, 'name': 'root'}
当列表或字典被当成参数传入函数时,函数里面对其操作是会改变它的值的
想要传入但不被改变可以参考以下两个方法(深拷贝)
http://www.runoob.com/python/att-dictionary-copy.html
https://blog.csdn.net/lanyang123456/article/details/73662452