【发布时间】:2014-03-02 06:59:39
【问题描述】:
我知道 Java,最近也开始学习 Python。有一次我明白我需要停下来澄清所有与数据结构相关的问题,尤其是列表、数组和元组。如果我在以下任何一项中有错误,请您纠正我:
- 最初,根据数据结构标准,列表不 支持任何类型的索引。获得访问权限的唯一方法 元素是通过迭代(下一个方法)。
- 在 Java 中实际上有一种方法可以通过索引来访问元素(即 get(index) 方法),但即使您使用这些与索引相关的方法,它仍然会从第一个元素(或者更具体地说是它的引用)进行迭代)
- 当我们在 Java 中处理数组时,Python 中有一种方法可以访问 Lists 元素,使用 list[index] 语法,但实际上,即使这种数据类型称为“lists”,我们确实有一个数组在后台引用,当我们引用第三个元素时,例如,我们直接引用数组中的第 3 个元素来获取引用,而无需从第一个元素迭代(我很确定我在这里错了)
- 元组的实现方式与 Python 中的列表相同。唯一的区别是它们是不可变的。但它仍然比数组更接近列表,因为元素在内存中不是连续定位的。
- 没有像 Python 那样的数组
- 在数据结构理论中,当我们创建一个数组时,它只使用对第一个内存单元的引用,然后迭代到我们指定为索引的元素的#。 Lists 和 Arrays 的主要区别在于所有元素都在内存中连续定位,这就是我们在性能方面获胜的原因。
我很确定我在某个地方错了。你能纠正我吗? 谢谢
【问题讨论】:
-
主要问题是您实际上在谈论三种数据结构。链表、数组和动态数组。 Python 列表是一个动态数组。我建议您查看每个维基百科页面以获得概览。
-
谢谢。是的,我不是在谈论语言。那是关于数据结构的问题。
标签: java python arrays list tuples