python:将一个列表分配给一个命名列表中的变量。如何避免依赖?

python:将一个列表分配给一个命名列表中的变量。如何避免依赖?,python,list,Python,List,我正在学习Python,刚刚遇到了以下行为 我定义一个列表x,并将x的值赋给变量y >>> x = [1,2,3] >>> y = x >>> y.extend([4,5,6]) >>> print y [1, 2, 3, 4, 5, 6] >>> print x [1, 2, 3, 4, 5, 6] 但是在扩展列表后,y,x和y都有额外的三个元素。这同样适用于append >>> x

我正在学习Python,刚刚遇到了以下行为

我定义一个列表
x
,并将
x
的值赋给变量
y

>>> x = [1,2,3]
>>> y = x
>>> y.extend([4,5,6])
>>> print y
[1, 2, 3, 4, 5, 6]
>>> print x
[1, 2, 3, 4, 5, 6]
但是在扩展列表后,
y
x
y
都有额外的三个元素。这同样适用于
append

>>> x = [1,2]
>>> y = x
>>> y.append(3)
>>> print y
[1, 2, 3]
>>> print x
[1, 2, 3]
我理解赋值操作符
=
是从右向左赋值,我没有得到什么


如何从命名列表中分配列表,但仍然能够在不影响旧列表的情况下更改新列表?或者这不是Python中处理列表的正确方法吗?

y=x
y
指定为与
x
相同的列表。相反,您应该复制列表。一种方法是:

y = list(x)

好的,谢谢。这是否仅适用于列表?因为我尝试添加了int,但它没有做同样的事情。在许多编程语言(包括Python)中,这适用于对象(如列表),但不适用于原语。(像ints)也就是说,你必须复制对象,但不能复制原语。好的,很高兴知道!谢谢