Python中元組中的列表數據為什么可變?


既然說元組數據類型是不可變的,但是當指定元組中的列表數據怎么又是可變的呢?

  • Python中一些皆對象,會為元組中的每一個數據分配內存地址空間
  • 當指定元組中的列表數據時,本質是另外一段內存空間對應的是列表數據,完全獨立於元組,所以是可變的。

怎么驗證?

1,查看現象:

>>> a = (1,2,3,[1,2,3])

>>> a[3]

[1, 2, 3]

>>> a[3][0]

1

>>> a[3][0] = 5

>>> a

(1, 2, 3, [5, 2, 3])

2,查看元組a的內存地址空間:

>>> id(a)
2608417672464

3, 查看元組a[3]的內存地址空間

>>> id(a[3])
2608385422400

擴展:type(a[0]) 是整型數據,不可變,如果是可變類型,也是可以改變的!

>>> type(a[0])
<class 'int'>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM