/* 一: 赋值 二: 浅拷贝 二: 深拷贝 */
一: 赋值
# 赋值 if __name__ == '__main__': dict1 = {'user':'Tom','num':[1,2,3]} # 直接赋值: 引用对象 dict2 = dict1 print("dict1: 0x%x" %id(dict1), dict2) # dict1: 0x17b63540100 {'user': 'Tom', 'num': [1, 2, 3]} print("dict2: 0x%x" %id(dict2), dict2) # dict2: 0x17b63540100 {'user': 'Tom', 'num': [1, 2, 3]} dict2["user"] = "Jack" dict2["num"].append(66) print(dict1) # {'user': 'Jack', 'num': [1, 2, 3, 66]} print(dict2) # {'user': 'Jack', 'num': [1, 2, 3, 66]}
二: 浅拷贝
# 浅拷贝 if __name__ == '__main__': dict1 = {'user':'Tom','num':[1,2,3]} # 浅拷贝: 深拷贝一级目录; 二级目录为引用 dict2 = dict1.copy() print("dict1: 0x%x" %id(dict1), dict2) # dict1: 0x2320afc0100 {'user': 'Tom', 'num': [1, 2, 3]} print("dict2: 0x%x" %id(dict2), dict2) # dict2: 0x2320afc0200 {'user': 'Tom', 'num': [1, 2, 3]} dict2["user"] = "Jack" dict2["num"].append(66) print(dict1) # {'user': 'Tom', 'num': [1, 2, 3, 66]} print(dict2) # {'user': 'Jack', 'num': [1, 2, 3, 66]}
二: 深拷贝
# 深拷贝 import copy if __name__ == '__main__': dict1 = {'user':'Tom','num':[1,2,3]} # 深拷贝: 完全独立 dict2 = copy.deepcopy(dict1) print("dict1: 0x%x" %id(dict1), dict2) # dict1: 0x1c4fff30100 {'user': 'Tom', 'num': [1, 2, 3]} print("dict2: 0x%x" %id(dict2), dict2) # dict2: 0x1c4805e9100 {'user': 'Tom', 'num': [1, 2, 3]} dict2["user"] = "Jack" dict2["num"].append(66) print(dict1) # {'user': 'Tom', 'num': [1, 2, 3]} print(dict2) # {'user': 'Jack', 'num': [1, 2, 3, 66]}
标签:__,dict1,dict2,num,user,深度,print,拷贝,赋值 From: https://www.cnblogs.com/huafan/p/17364426.html