Java中的数据结构&;Python及其实现:列表、数组、元组

Java中的数据结构&;Python及其实现:列表、数组、元组,java,python,arrays,list,tuples,Java,Python,Arrays,List,Tuples,我了解Java,最近也开始学习Python。有一次,我明白我需要暂停一下,澄清所有与数据结构相关的问题,特别是列表、数组和元组。如果我在以下任何方面有错误,请您纠正我: 最初,根据数据结构标准,列表不是 支持任何类型的指数化。只有这样才能进入 元素是通过迭代实现的(下一个方法) 在Java中,实际上有一种通过索引访问元素的方法(即get(index)方法),但即使使用这些与索引相关的方法,它仍然从第一个元素(或者更具体地说是它的引用)开始迭代 Python中有一种方法可以在Java中使用lis

我了解Java,最近也开始学习Python。有一次,我明白我需要暂停一下,澄清所有与数据结构相关的问题,特别是列表、数组和元组。如果我在以下任何方面有错误,请您纠正我:

  • 最初,根据数据结构标准,列表不是 支持任何类型的指数化。只有这样才能进入 元素是通过迭代实现的(下一个方法)
  • 在Java中,实际上有一种通过索引访问元素的方法(即get(index)方法),但即使使用这些与索引相关的方法,它仍然从第一个元素(或者更具体地说是它的引用)开始迭代
  • Python中有一种方法可以在Java中使用list[index]语法处理数组时访问list元素,但实际上,即使这种数据类型被称为“list”,我们在后台也有一个引用数组,例如,当我们引用第三个元素时,我们直接引用数组中的3个元素,从第一个元素无需迭代即可获得引用(我很确定我在这里是错的)
  • 元组的实现方式与Python中的列表相同。唯一的区别是它们是不可变的。但它仍然比数组更接近列表,因为元素在内存中的位置不连续
  • Python中没有数组
  • 在数据结构理论中,当我们创建一个数组时,它只使用对第一个内存单元的引用,然后迭代到我们指定为索引的#of元素。列表和数组之间的主要区别在于,所有元素都连续地位于内存中,这就是我们在性能方面获胜的原因
我很确定我在什么地方错了。请你纠正我好吗? 谢谢

大部分都是错的

  • 元素是一个有序的元素序列,允许重复。有许多方法可以实现这种数据类型,特别是作为一种数据类型,但大多数编程语言都使用这种方法
  • 即使是链表也可以支持索引。实现无法直接跳到第n个元素,但它可以通过链接到达该元素
  • Java的类型不指定实现,只指定接口。类型是使用动态数组实现的列表;这个名字就是这么说的
  • Python的列表是用动态调整大小的数组实现的。Python的元组是用固定大小的数组实现的
  • 实际上有两种Python类型通常被称为数组,不包括新手通常使用的“数组”来引用Python列表。有模块提供的阵列,还有的
    ndarray
    s
  • 对数组进行索引时,实现不会从第一个元素的位置迭代到第n个元素。它向数组的地址添加一个偏移量,以直接跳到元素,而不进行迭代

主要问题是,您实际上讨论的是三种数据结构。链表、数组和动态数组。Python列表是一个动态数组。我建议大家浏览一下维基百科的每一页,以获得一个概览。谢谢。是的,我不是在说语言。这是一个关于数据结构的问题。谢谢,听起来不错。当我谈到“实现”时,我并不是指java'a接口和实现。所以前3颗子弹对我来说很清楚。Python的数组也是如此。如果总结一下我的理解,在理解单词的数据结构时,Python的列表和元组是用“数组”实现的,对吗?一个是动态调整大小的,另一个是固定的?而对数组中元素的访问不涉及迭代?它使用第一个元素的偏移+位置?