import copy
l1 = [1, 2, 3]
l2 = l1
print(l1 is l2)
l1 = [1, 2, 3]
l2 = list(l1)
print(l1 is l2)
l1 = [1, 2, 3]
l2 = copy.copy(l1)
print(l1 is l2)
#结果
True
False
False
l2 = l1 表示,让变量 l2 也同时指向 l1 这个对象。这里要注意,Python 里的对象可以被多个变量所指向或引用。
list相当于copy
在看看元组: tuple
import copy
t1 = (1, 2, 3)
t2 = t1
print(t1 is t2)
t1 = (1, 2, 3)
t2 = tuple(t1)
print(t1 is t2)
t1 = (1, 2, 3)
t2 = copy.copy(t1)
print(t1 is t2)
#结果
True
True
True
个人理解:
list可变,copy的时候要创建新对象
tuple不可变,copy就没必要创建新对象(节省内存)