我只是想知道我們如何獲得以下輸出。下面給出的是一個 Python 代碼:
x=[1,3,6,[18]]
y=list(x)
x[3][0]=15
x[1]=12
print(y)
輸出是:
[1,3,6,[15]]
為什么 x[1]=12沒有對串列 y進行任何更改?但是為什么要 x[3][0]=15更改串列 y 中的元素?你能對此做一個詳細而簡單的解釋嗎?為什么???
uj5u.com熱心網友回復:
想象每個元素都是一個變數:
x = [a,b,c,d] # 1,3,6,[18]
你復制它,因為y你有
y = [a,b,c,d] # 1,3,6,[18]
當您這樣做時,x[3][0] = 15您正在更改d. 請注意,d它仍然是變數d,您更改了它的內容,但它d在兩個串列中仍然相同。
現在你改變了的第二個元素 x
x = [a,e,c,d] # 1,12,6,[15]
但y仍然是
y = [a,b,c,d] # 1,3,6,[15]
編輯:添加一個非代碼示例以使其更清晰
讓我們說x是一個串列:
- 一張紙說
1 - 一張紙說
3 - 一張紙說
look at that notebook over there, whatever's in there is my value
當你復制x為時y,你有:
- 一張紙,上面寫著
1(副本) - 一張紙,上面寫著
3(副本) - 一篇論文,上面寫著
look at that notebook over there, whatever's in there is my value(這是一份副本,但都參考了同一個筆記本)
當你做x[2][0] = 1你走到哪里筆記本是和改動的內容,都x和y仍然告訴你去那個筆記本一樣知道什么是在那里,你沒有改變第三紙,你跟著它的指令,改變的內容筆記本
當你這樣做時x[1] = 6,你正在x用一張新的論文改變第二個元素6,但你沒有改變y它,因為它是不同的論文(原件的副本)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/388327.html
標籤:Python 蟒蛇-3.x 列表 python-3.8
