gpt4 book ai didi

Python:元组和列表之间的差异和相似之处

转载 作者:太空宇宙 更新时间:2023-11-03 19:22:07 24 4
gpt4 key购买 nike

Possible Duplicate:
What's the difference between list and tuples in Python?

我只有一个理论问题:如果我说元组只是不可变的列表,我怎么错了(或者我没有错?)?

我知道元组仅在某种程度上是不可变的:如果我有一个元组,其中包含可变对象(列表,python对象,等等) - 它在某种程度上是可变的,因为我可以更改该对象的值,但仍然- 元组结构,其指向元素的指针保持不变,因此元组本身是不可变的。我知道,你不必解释这一点。

据我所知,除了可变性之外,没有任何区别。对于这两种类型,运算符 + 返回由操作数元素组成的足够结构,按顺序,+= 运算符也可以工作,都可以使用简单索引或切片进行访问,都响应 len()、map() (这是一个有点棘手:map(foo, tuple) 返回列表,而不是元组。我想我明白了这种行为的原因,但仍然值得一提)、all()、any() 等...

所以 - 功能相同,语法略有不同,主要区别在于可变性。是对的吗?还是我错过了什么?

最佳答案

列表和元组之间的传统区别是,元组用于固定长度的异构数据,而列表则针对可变长度的同质数据。

近年来,这种区别已经有所放松。例如,元组具有仅对同类数据有意义的 count()index() 方法,以及 isinstance(tuple, collections.Sequence)True

因此,在我看来,将元组视为不可变列表并不算太离谱。不变性允许它们是可散列的,因此它们可以用作字典和集合中的键,因为所有项目都是可散列的,但它们不能更改。

关于Python:元组和列表之间的差异和相似之处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9351855/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com