mar*_*ion 3 python sorting list variable-assignment
来自其他语言,我对列表中Python变量赋值的方式有点困惑.举个例子,让我们说:
x = [4, 5, 2, 70, 1]
y = x
y.sort()
Run Code Online (Sandbox Code Playgroud)
如果打印x和y,则两个变量的结果相同:
x = [1, 2, 4, 5, 70]
y = [1, 2, 4, 5, 70]
Run Code Online (Sandbox Code Playgroud)
我没想到这种行为.我认为x的序列不会改变,因为我只在列表y上应用了sort方法.
另一方面,如果我使用切片运算符将列表x的内容分配给列表y,那么我将达到预期的(至少在我的情况下)行为:
x = [4, 5, 2, 70, 1]
y = x[:]
y.sort()
Run Code Online (Sandbox Code Playgroud)
如果打印x和y,我看到列表x保持不变.
x = [4, 5, 2, 70, 1]
y = [1, 2, 4, 5, 70]
Run Code Online (Sandbox Code Playgroud)
有人可以解释背后的逻辑吗?
谢谢!