python 中的列表赋值

hie*_*eko 2 python list python-3.x

我有如下代码,当我打印 list1 和 list2 时,它显示相同的元素,但我在将现有 list1 分配给 list2 之后添加了 9,因此它不应在 list2 中显示 9。

list1=[1,2,3,4]
list2=list1
list1.insert(4,9)
print(list1)
print(list2)
Run Code Online (Sandbox Code Playgroud)

请消除我的疑问。

Dan*_*l H 8

在Python中,变量名是对底层变量的引用。两者list1list2引用相同的列表,因此当您插入9该列表时,您会看到两者的更改。如果您希望它们不同,需要制作一个显式副本(使用modulecopy、 slice notation或其他一些方法)。list2 = list1[:]