python 引用和拷貝

來源:互聯網
上載者:User

python 引用:
python一般內部賦值變數的話,都是傳個引用變數,和C語言的傳地址的概念差不多,
比如
a = [1,2,3]
表示變數a儲存了這個列表的地址
python裡可以用id()來查詢下
a在記憶體的地址是:675375852
b = a
那b的內容是什麼,地址又是什麼呢?
用print 輸出下b的內容也是[1,2,3]
然後我們查看下b的地址看下能否驗證我們的結論
print id(b)
果然b的地址也是:675375852
呵呵看來結論也正確的。

這樣會帶來一個問題,因為變數a,和變數b都是儲存了同一個列表的地址。如果我改變a指向的列表的值的話,
那b指向的列表的值也同時改變
比如:
a[1] = 6
print a
輸出的內容是[1,6,3]
print b
b指向的列表的內容也是[1,6,3]


python 拷貝

如果我們只想修改a列表裡面的內容。而不想修改b的內容,那就要用到python的拷貝了
a=[1,2,3]
b=a[:]###拷貝了一份a的內容給b
a[1]=6
print a
輸出a的內容是[1,6,3]
而b的內容不是[1,6,3]
而是[1,2,3]

呵呵python果然好神奇阿!!


原創文章:http://www.cnpythoner.com/post/20.html,轉載請保留,謝謝!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.