列表与元组:列表和元组之间的区别

已发表: 2021-01-08

在 Python 中,列表和元组是一类可以存储一个或多个对象或值的数据结构。 列表用于将多个项目存储在一个变量中,并且可以使用方括号创建。 同样,元组也可以在单个变量中存储多个项目,并且可以使用括号声明。

虽然list 和 tuple 有很多不同,但也有一些相似之处,如下:

  • 这两种数据结构都是存储项目集合的序列数据类型。
  • 任何数据类型的项目都可以存储在其中。
  • 项目可以通过它们的索引来访问。

目录

列表与元组

下表包含 Python中列表和元组的基本区别。

列表元组
它是可变的它是不可变的
迭代的含义在列表中是耗时的。 元组中迭代的含义要快得多。
插入和删除等操作执行得更好。 可以更好地访问元素。
消耗更多内存。 消耗更少的内存。
许多内置方法可用。 没有很多内置方法。
列表中很容易出现意外错误和更改。

元组中很少发生意外错误和更改。

以下部分提供了列表与元组的详细版本,以便更好地理解。

语法差异

正如介绍中提到的,list 和 tuple 的语法是不同的。 例如:

list_num = [10, 20, 30, 40]

tup_num = (10, 20, 30, 40)

可变性

列表和元组之间最重要的区别之一是列表是可变的,而元组是不可变的。 这意味着可以更改列表,而不能更改元组。

因此,某些操作可以在列表上工作,但不能在元组上工作。 例如,在数据科学中,如果列表已经存在,则可以重新分配其中的特定元素。 除此之外,可以重新分配整个列表。 可以从列表中删除元素和元素切片。

另一方面,元组上的特定元素不能重新分配或删除,但可以对其进行切片,甚至重新分配和删除整个元组。 因为元组是不可变的,所以它们不能被复制。

查看: Python 与 Java

运营

尽管有许多类似于列表和元组的操作,但列表具有元组不具备的附加功能。 这些是插入和弹出操作,以及列表中的排序和删除元素。

职能

一些 Python 函数可以应用于这两种数据结构,例如 len、max、min、any、sum、all 和 sorted。

尺寸

在 Python 中,元组被分配了具有较低开销的大块内存,因为它们是不可变的; 而对于列表,分配的是小内存块。 在两者之间,元组的内存更小。 当有大量元素时,这有助于使元组比列表更快。

元素类型

属于不同数据类型的元素,即异构元素,通常存储在元组中。 而同质元素,即相同数据类型的元素,通常存储在列表中。 但这不是对数据结构的限制。 相似的数据类型元素可以存储在元组中,不同的数据类型元素也可以存储在列表中。

长度

两种数据结构的长度不同。 元组具有固定长度,而列表具有可变长度。 因此,可以更改创建列表的大小,但元组并非如此。

调试

在调试方面,在列表与元组中,元组由于其不变性而更容易为大型项目调试。 所以,如果项目比较小或者数据量比较少,还是用列表比较好。 这是因为列表可以更改,而元组不能,从而使元组更易于跟踪。

嵌套列表和元组

元组可以存储在列表中,同样,列表也可以存储在元组中。 在嵌套元组中,一个元组可以容纳更多元组。 在嵌套列表中,一个列表可以容纳更多列表。

用途

重要的是要了解在不同的情况下最好使用其中一种数据结构,例如; 使用哪一种取决于程序员,即根据他们以后是否要更改数据来选择一种。

元组可以等效于没有键的字典来存储数据。 当元组存储在列表中时,更容易读取数据。

阅读: Python 中更多类型的数据结构

结论

本文有助于理解列表和元组之间的区别。 尽管这两种类型都是 Python 中的数据结构,但在做出选择时熟悉这些差异很重要。 要记住的最重要的区别是列表是可变的,而元组不是,列表具有可变大小而元组具有固定大小。 最后,元组中的操作可以更快地执行。

如果你正在阅读这篇文章,你很可能有成为一名 Python 开发者的雄心壮志。 如果您有兴趣学习 python 并想亲身体验各种工具和库,请查看 IIIT-B 和 upGrad 的数据科学执行 PG 计划。

什么时候首选 Python 列表来存储数据?

Python 列表被认为是在以下场景中存储数据的最佳数据结构: 列表可用于存储具有不同数据类型的各种值,并且可以仅通过其各自的索引进行访问。 当您需要对元素执行数学运算时,可以使用列表,因为它允许您直接对元素进行数学运算。 由于列表可以调整大小,因此当您不确定要存储的元素数量时,可以使用它来存储数据。

说明namedtuple的各种操作。

Python 中的 namedtuple 执行各种操作。 以下是 namedtuple 执行的一些最常见操作的列表 - 按索引访问、按键名访问、make()、_asadict()、使用“**”(双星)运算符、_fileds()、_replace (), 等等。

创建列表的不同方法是什么?

可以通过此处提到的多种方式创建 Python 列表。 使用 for 循环 - for 循环是创建列表的最基本方式。 可以使用 for 循环以三种简单的方式创建列表 - 创建一个空列表,遍历要插入的所有元素,使用 append() 函数将每个元素附加到列表中。 使用 map():Python 中的 map() 函数可用于创建列表。 此函数接受两个参数 - Function:映射将每个可迭代对象传递到的函数和 Iterable:要映射的元素或可迭代对象。 使用列表推导:此方法是所有三种方法中最优化的。 虽然在上述方法中必须首先创建一个空列表,但列表推导式允许您使用单行将所有元素插入列表中。