当前位置: 首页 > 面试题库 >

列表和元组有什么区别?

顾穆冉
2023-03-14
问题内容

有什么不同?

元组/列表的优点/缺点是什么?


问题答案:

除了元组是不可变的之外,还应有语义上的区别来指导它们的使用。元组是异构数据结构(即,它们的条目具有不同的含义),而列表是同类序列。元组具有结构,列表具有顺序。

使用这种区别可以使代码更加明确和易于理解。

一个示例是成对的页和行号,以指向一本书中的参考位置,例如:

my_location = (42, 11)  # page number, line number

然后,您可以将其用作字典中的键来存储有关位置的注释。另一方面,列表可用于存储多个位置。自然地,人们可能想在列表中添加或删除位置,因此列表可变是有意义的。另一方面,从现有位置添加或删除项目没有意义-因此,元组是不可变的。

在某些情况下,您可能想更改现有位置元组中的项目,例如在页面的各行中进行迭代时。但是元组不变性迫使您为每个新值创建一个新的位置元组。从表面上看,这似乎很不方便,但是使用这样的不可变数据是值类型和函数式编程技术的基石,它可以具有很多优点。

关于此问题,有一些有趣的文章,例如“ Python元组不仅仅是常量列表”或“了解Python中的元组与列表”。官方Python文档也提到了这一点

“组是不可变的,并且通常包含一个异类序列…”。

在像Haskell这样的静态类型语言中,元组中的值通常具有不同的类型,并且元组的长度必须固定。在列表中,所有值都具有相同的类型,并且长度不是固定的。因此区别非常明显。

最后,Python中有一个namedtuple,这很有意义,因为一个元组应该已经具有结构。这强调了元组是类和实例的轻量级替代方案的思想。



 类似资料:
  • 问题内容: 有什么不同? 元组/列表的优点/缺点是什么? 问题答案: 除了元组是不可变的之外,还应有语义上的区别来指导它们的用法。元组是异构数据结构(即,它们的条目具有不同的含义),而列表是同类序列。元组具有结构,列表具有顺序。 使用这种区别可以使代码更加明确和易于理解。 一个示例是成对的页和行号,以成对参考书中的位置,例如: 然后,您可以将其用作字典中的键来存储有关位置的注释。另一方面,列表可用

  • 元组和列表同属序列类型,且都可以按照特定顺序存放一组数据,数据类型不受限制,只要是 Python支持的数据类型就可以。那么,元组和列表有哪些区别呢?元组和列表最大的区别就是,列表中的元素可以进行任意修改,就好比是用铅笔在纸上写的字,写错了还可以擦除重写;而元组中的元素无法修改,除非将元组整体替换掉,就好比是用圆珠笔写的字,写了就擦不掉了,除非换一张纸。

  • 本文向大家介绍在React中组件和元素有什么区别?相关面试题,主要包含被问及在React中组件和元素有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 组件首字母大写 组件是由元素构成的。元素数据结构是普通对象,而组件数据结构是类或纯函数

  • 本文向大家介绍python中列表和元组的区别,包括了python中列表和元组的区别的使用技巧和注意事项,需要的朋友参考一下 如果有了解过python中的列表和元组,你可能会知道相对于列表,元组是不可变的,也就是说元组中的数据不能随意更改。除了列表是用中括号表示而元组是用小括号表示之外,这两种数据类型好像并没有什么不同,都是用来存放一系列的数据,事实真是如此吗? 看起来除了元组不可变之外,列表完全可

  • 本文向大家介绍队列和栈是什么?有什么区别?相关面试题,主要包含被问及队列和栈是什么?有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 队列和栈都是被用来预存储数据的。 队列允许先进先出检索元素,但也有例外的情况,Deque 接口允许从两端检索元素。 栈和队列很相似,但它运行对元素进行后进先出进行检索。

  • 和 元名称和元属性有什么区别?