既然說元組數據類型是不可變的,但是當指定元組中的列表數據怎么又是可變的呢?
- 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'>