【发布时间】:2012-11-01 08:56:09
【问题描述】:
来自其他语言,我对列表中 Python 变量赋值的方式有点困惑。例如,假设:
x = [4, 5, 2, 70, 1]
y = x
y.sort()
如果 x 和 y 被打印,两个变量的结果是相同的:
x = [1, 2, 4, 5, 70]
y = [1, 2, 4, 5, 70]
我并没有预料到这种行为。我以为 x 的顺序不会改变,因为我只对列表 y 应用了排序方法。
另一方面,如果我使用切片运算符将列表 x 的内容分配给列表 y,那么我将实现预期的(至少在我的情况下)行为:
x = [4, 5, 2, 70, 1]
y = x[:]
y.sort()
如果 x 和 y 被打印,我看到列表 x 保持不变。
x = [4, 5, 2, 70, 1]
y = [1, 2, 4, 5, 70]
有人能解释一下背后的逻辑吗?
谢谢!
【问题讨论】:
-
@MartijnPieters 哎呀,我已经修好了。谢谢。
-
Python references 的可能重复项
标签: python list sorting variable-assignment