python☞列表复制

列表复制的四种方法

a=b

Python列表用等号赋值并不是将列表完整的赋值给另一个列表,而是通过引用另一个列表的地址

a=[1,2,3,4]
b=[0,9,8,6]
a=b
b.append([5,4])
print(a)   #[0, 9, 8, 6, [5, 4]]

故而,当你改变列表b时,列表a也会相应的改变
我们可以查看此时a和b的id(查看某个对象的内存地址)来验证一下

print(id(a))			#2855987703296
print(id(b))			#2855987703296

a=list(b)

a=[1,2,3,4]
b=[0,9,8,6]
a=list(b)
b.append([5,4])
print(a)  # [0, 9, 8, 6]

它们指向不同的内存地址空间,下面我们来验证一下

print(id(a))			#2037959826880
print(id(b))			#2037959770048

a=b[:]

a=[1,2,3,4]
b=[0,9,8,6]
# a=b
# a=list(b)
a=b[:]
b.append([5,4])
print(a) #[0, 9, 8, 6]

它们指向不同的内存地址空间,下面我们来验证一下

print(id(a))			#2201300509696
print(id(b))			#2201300451264

a=b.copy()

a=[1,2,3,4]
b=[0,9,8,6]
a=b.copy()
b.append([5,4])
print(a)				#[0, 9, 8, 6]

这种方法列表a和列表b指向不同的地址

print(id(a))			#2849011278848
print(id(b))			#2849011220416

猜你喜欢

转载自blog.csdn.net/m0_67522355/article/details/127154176