Skip to main content
 首页 » 编程设计

python之为什么这不分配一个副本

2025年05月04日15kenshinobiy

我有以下代码,我想知道为什么它返回相同的列表而不是副本:

x = [2,1,3] 
y = x 
y.sort() 
print y 
print x 

为什么这会返回相同的排序列表?

请您参考如下方法:

因为它是就地修改的。

Python 列表具有引用语义,这意味着当您将一个列表分配给另一个变量时,它们实际上指向同一个列表。

如果要复制,请执行以下操作:

x = [2,1,3] 
y = x[:] 
y.sort() 
print y 
print x 

slice 表示法确实会导致列表(在本例中为整个列表,尽管您可以进行小的修改以请求特定的子列表)被复制。