Python中,即使元组的成员对象中有列表,元组也是不可变的,是不是正确

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中,即使元组的成员对象中有列表,元组也是不可变的,是不是正确相关的知识,希望对你有一定的参考价值。

Python中,即使元组的成员对象中有列表,元组也是不可变的,是否正确

不完全正确。理由是,元组的“不可变”体现在内存地址的不可变,而元组中包含列表,尽管做到了元素地址不变,但列表作为元素,它的内容是可以变的。也就是说,a=(1,2,[3,4])和b=(1,2,[9,4])这两个元组不同,但是可以通过在不改变元素地址的前提下,原地修改元素内容(这里针对[3,4]及[9,4]这两个元素),从而使得a、b两个元组,尽管地址不同,但外表“看起来”相同。 参考技术A python中没有数组,只有元组,和列表的区别就是元组不可变,列表可变。

Python不可变对象元组(tuple)详解

参考技术A 元组和列表很相似,不过元组是不能在原处改变的对象,这点性质和字符串一致,虽然元组不支持任何方法调用,但是元组具有列表的大多数属性,以下是元组的一些特性。

示例结果:

示例结果:

示例结果:

示例结果:

示例结果:

当我们在学习元组时,总是会纳闷已经有了列表为什么还需要学习使用元组看似鸡肋的内置对象呢? 我们可以通过元组的不可变性运用在一些场景中,因为其不可变性本身本身就提供了某种完整性,比如使用元组来实现函数的多返回值,作为参数传递给函数调用、或是从函数调用那里获得参数时,保护其内容不被外部接口修改。

以上是关于Python中,即使元组的成员对象中有列表,元组也是不可变的,是不是正确的主要内容,如果未能解决你的问题,请参考以下文章

初识Python

Python3---数据类型---元组

元组的基本操作

Python不可变对象元组(tuple)详解

1-2:数据类型之元组列表类型

Python的列表和元组的区别