3
來自其他語言,我對Python列表中的Python變量賦值的方式有些困惑。舉個例子,比方說: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 oops,我修復了它。謝謝。 – marillion
[Python引用]的可能重複(http://stackoverflow.com/questions/2797114/python-references) – Junuxx