赋值:
a = 20 b = a print(a,id(a)) # 赋值,完全复制,内存地址一样,如果原来的改变,后面的也会跟着变 <<<<20 140728211236080 print(b,id(b)) <<<<20 140728211236080
浅拷贝: 可以用copy()或[:]
li = [1,2,3,[6,7,8]] c = li.copy() # 浅拷贝,可以理解为只拷贝表面一层列表,里面的列表没拷贝,如果原来的里面的列表改变了,拷贝的会跟着变 li[0]=4 li[3][0]=9 print(li) <<<<[4, 2, 3, [9, 7, 8]] print(c) <<<<[1, 2, 3, [9, 7, 8]]
深拷贝:import copy 引入模块后,copy.deepcopy()
li = [1,2,3,[6,7,8]] import copy a = copy.deepcopy(li) # 深拷贝,可以理解为把原件的全部复制了一边,跟原本的没有一点关系,如果原件改了,拷贝的是不会变的 li[0]=4 li[3][0]=9 print(li) <<<<[4, 2, 3, [9, 7, 8]] print(a) <<<<[1, 2, 3, [6, 7, 8]]