微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

元组作为数据结构是什么,它与列表和数组有何不同?

如何解决元组作为数据结构是什么,它与列表和数组有何不同?

据我所知,数组是不可调整大小的索引序列,通常具有同类数据元素,而列表是可调整大小的有序序列,支持异构数据。 Wiki states 元组作为结构或数学模型是元素的有限有序列表(序列)。它与列表或数组有何不同?

注意!该问题与任何编程语言中的结构实现无关。我只是对纯数据结构(即根据定义)感到好奇。

解决方法

Python中liststuples之间的一个主要区别是tuples是不可变的(即,其中存储的值不能更改),而lists和{{ 1}}是可变的。这可以用这段代码来演示:

arrays

输出:

tup = ((1,2),(3,4))
tup[0][0] = 3

但是用TypeError: 'tuple' object does not support item assignment 做同样的事情:

list

它不会产生任何错误。

这是lst = [[1,2],[3,4]] lst[0][0] = 3 lists之间的主要区别,但还有许多其他区别,例如性能和内存消耗。您可以参考this website来了解更多信息。

,

我认为将arraystupleslists分开的主要区别是存储器中的contiguity及其构成元素的homogeneity。从计算机科学的角度来看,array基本上是一块连续的内存,用于存储相同性质的对象,而listtuple的元素可以位于遥远的内存中,并且性质也可以不同。同样,元组强制其元素的ordering(例如笛卡尔坐标(x,y)),而list本质上是无序的多集事物!

例如,您不能互换坐标的xy字段。但是,如果平面中的区域由一堆点表示,则您不必在意这些点的顺序。根据这些问题中traversingsearching的难易程度,您可以使用不同的数据结构,例如listset甚至tuple(例如顺序很重要,例如多边形顶点的顺时针遍历)!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。