Python中的列表和元组之间有什么区别?

Python中的列表和元组之间有什么区别?

Python中的List和Tuple是数据结构。List是动态的,而Tuple具有静态特性。

阅读更多:Python 教程

列表

列表是Python提供的四种最常用的数据结构之一。List是Python中的一种数据结构,它是可变的,并且具有有序的元素序列。以下是一组整数值的List-

lis= [1,2,3,4,5]
print(lis)

如果执行上面的代码片段,将会产生以下输出-

[1, 2, 3, 4, 5]

元组

元组是由逗号分隔的Python对象的集合,具有有序和不可变特性。元组与列表一样是一个序列。元组和列表之间的区别在于其元素不能更改,而列表使用方括号而元组使用括号。

tup=('tutorials', 'point', 2022,True)
print(tup)

如果执行上面的代码片段,将会产生以下输出-

('tutorials', 'point', 2022, True)

在本文中,我们讨论了Python中列表与元组之间的区别。

列表和元组的差异

列表和元组之间的主要差异如下-

列表 元组
List是可变的。 元组是不可变的。
列表占用更多空间。 元组占用比列表更少的空间。
迭代的实现比较费时。 迭代的实现比较快。
列表有许多内置函数。 元组没有任何内置方法。
插入和删除等操作在列表中表现更佳。 访问元素时,元组表现更佳。
列表经常发生不可预测的更改和错误。 在元组中,这很难发生。

可变与不可变

List是可变的,而Tuple是不可变的,这意味着我们可以修改或更改List的值,但是在Tuple中我们不能这样做。

以下示例演示了列表和tup的区别-

示例:列表

以下示例演示了Python列表的用法。

list = ["Meredith", "Levi", "Wright", "Franklin"]
list[1]= "Kristen"
print(list)

输出

['Meredith', 'Kristen', 'Wright', 'Franklin']

示例:元组

现在,让我们看一下元组的示例。

元组 = ("Meredith", "Levi", "Wright", "Franklin")
元组[1]= "Kristen"
print(元组)

Output

Traceback (most recent call last):
  File "main.py", line 2, in <module>
    元组[1]= "Kristen"
TypeError: 'tuple' object does not support item assignment

内存分配

由于元组是不可变的,Python会分配低开销的大内存块,而为列表分配小内存块。因此,相比于列表,元组将占用更少的内存。当元素数量很高时,这使得元组比列表更节省空间。

示例

在下面的示例中,我们可以看到相同数据占用空间的差异。

列表= ['Meredith', 'Kristen', 'Wright', 'Franklin']
元组 = ("Meredith", "Kristen", "Wright", "Franklin")
print("列表所占内存")
print(列表.__sizeof__())
print("元组所占内存")
print(元组.__sizeof__())

输出

列表所占内存
72
元组所占内存
56

复制与可重用性

无法复制或复制元组,因为元组不能改变(不可变)。如果您键入元组(元组名称),它将立即返回自身。

示例

名字 = ("Meredith", "Kristen", "Wright", "Franklin")
副本 = tuple(名字)
print(名字 is 副本)

输出

上述代码返回 true,这意味着元组的名字和副本是相同的。

True

示例2

名字 = ["Meredith", "Kristen", "Wright", "Franklin"]
副本 = list(名字)
print(名字 is 副本)

输出

由于列表可以被复制,该代码返回false。

False

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程