python中的列表赋值
我有一个如下的代码,当我打印list1和list2时,它显示相同的元素,但我在将现有list1分配给list2之后添加了9,所以它不应该在list2中显示9python中的列表赋值,python,python-3.x,list,Python,Python 3.x,List,我有一个如下的代码,当我打印list1和list2时,它显示相同的元素,但我在将现有list1分配给list2之后添加了9,所以它不应该在list2中显示9 list1=[1,2,3,4] list2=list1 list1.insert(4,9) print(list1) print(list2) 请澄清我的疑问。在python中,变量名是对底层变量的引用。list1和list2都引用同一个列表,因此当您将9插入该列表时,您可以看到两者的变化。如果希望它们是不同的,则需要创建一个显式副本(使
list1=[1,2,3,4]
list2=list1
list1.insert(4,9)
print(list1)
print(list2)
请澄清我的疑问。在python中,变量名是对底层变量的引用。
list1
和list2
都引用同一个列表,因此当您将9
插入该列表时,您可以看到两者的变化。如果希望它们是不同的,则需要创建一个显式副本(使用切片表示法list2=list1[:]
,或其他一些方法)。在python中,变量名是对基础变量的引用。list1
和list2
都引用同一个列表,因此当您将9
插入该列表时,您可以看到两者的变化。如果您希望它们是不同的,则需要创建一个显式副本(使用切片表示法list2=list1[:]
,或其他一些方法)
当我们有不同的列表时?和当创建别名时?
正如你所写的:
list1=[1,2,3,4]
list2=list1
上面的代码片段将映射到list1
到list2
要检查两个变量是否引用同一对象,可以使用is
运算符
>>> list1 is list2
# will return "True"
在您的示例中,Python创建了一个列表,由list1
和list2
引用。因此,对同一对象有两个引用。我们可以说对象[1,2,3,4]
有别名,因为它有多个名称,而且列表是可变的。因此,使用list1
进行的更改将影响list2
但是,如果希望有不同的列表,则应执行以下操作:
>>> list1 = [1, 2, 3, 4]
>>> list2 = list1[:] # here list2 is created as a copy of list1
>>> list1.insert(4, 9)
>>> print list1
[1, 2, 3, 4, 9]
>>> print list2
[1, 2, 3, 4]
你被搞糊涂了 当我们有不同的列表时?和当创建别名时? 正如你所写的:
list1=[1,2,3,4]
list2=list1
上面的代码片段将映射到list1
到list2
要检查两个变量是否引用同一对象,可以使用is
运算符
>>> list1 is list2
# will return "True"
在您的示例中,Python创建了一个列表,由list1
和list2
引用。因此,对同一对象有两个引用。我们可以说对象[1,2,3,4]
有别名,因为它有多个名称,而且列表是可变的。因此,使用list1
进行的更改将影响list2
但是,如果希望有不同的列表,则应执行以下操作:
>>> list1 = [1, 2, 3, 4]
>>> list2 = list1[:] # here list2 is created as a copy of list1
>>> list1.insert(4, 9)
>>> print list1
[1, 2, 3, 4, 9]
>>> print list2
[1, 2, 3, 4]
与其他语言不同,在Python中,
list2=list1
不单独复制list1。列表1和列表2引用相同的值。请参阅以获得更详细的解释。我理解这一点。谢谢你的帮助。请在提问前搜索网页,这个问题有大约80k的浏览量,因此很容易访问!与其他语言不同,在Python中,list2=list1
不单独复制list1。列表1和列表2引用相同的值。请参阅以获得更详细的解释。我理解这一点。谢谢你的帮助。请在提问前搜索网页,这个问题有大约80k的浏览量,因此很容易访问!如果我需要这样的要求,我想在另一个列表中复制一份用于某种目的的列表,该怎么办。我该怎么做呢。请评论。如果我需要这种要求,我想在另一个列表中复制一份用于某种目的的列表。我该怎么做呢。请评论。