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