一、b=a是赋值语句,b指向a的地址,a和b任何一个改变了,另一个也跟着改变
a = list([1, 2, 3])
a = list(a)
b = a
print(hex(id(a))) # 0x26b4b00
print(hex(id(b))) # 0x26b4b00
a.append(4)
print(a) # [1, 2, 3, 4]
print(b) # [1, 2, 3, 4] b和a有相同的内存地址
b.append(5)
print(a) # [1, 2, 3, 4, 5] a和b有相同的内存地址
print(b) # [1, 2, 3, 4, 5]
二、b=a.copy()是把a的值赋给b,a和b有不同的内存地址,一个改变了,另一个不变
a = list([1, 2, 3])
a = list(a)
b = a.copy()
print(hex(id(a))) # 0x26b4b00
print(hex(id(b))) # 0x26b4a80
a.append(4)
print(a) # [1, 2, 3, 4]
print(b) # [1, 2, 3] b和a有不相同的内存地址
b.append(5)
print(a) # [1, 2, 3, 4] a和b有不相同的内存地址
print(b) # [1, 2, 3, 5]