Python 列表和元组之间的区别是什么

Python 列表和元组之间的区别是什么

列表和元组是Python中的数据结构。列表是动态的,而元组具有静态特性。

列表

列表是Python提供的四个最常用的数据结构之一。列表是Python中的一个可变数据结构,具有按顺序排列的元素序列。以下是一个整数值列表:

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中列表和元组之间的区别。

列表和元组的区别

以下是列表和元组之间的主要区别:

列表 元组
列表可变 元组不可变。
列表占用更多空间。 与列表相比,元组占用更少的空间。
实现迭代需要时间。 相对来说,实现迭代更快。
列表有许多内建函数。 元组没有任何内建方法。
在列表中,插入和删除等操作效果更好。 对于访问元素,元组效果更好。
列表经常出现不可预测的变化和错误。 在元组中,很难发生这种情况。

可变与不可变

列表是可变的,而元组是不可变的,这意味着我们可以修改或者改变列表的值,但是我们不能在元组中这样做。

下面的示例展示了列表和元组在这种情况下的区别。

示例:列表

以下示例展示了python列表的用法。

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

输出

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

示例:元组

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

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

输出

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

内存分配

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

示例

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

list= ['Meredith', 'Kristen', 'Wright', 'Franklin']
tuple = ("Meredith", "Kristen", "Wright", "Franklin")
print("Memory occupied by a list")
print(list.__sizeof__())
print("Memory occupied by a tuple")
print(tuple.__sizeof__())

输出

Memory occupied by a list
72
Memory occupied by a tuple
56

复制 vs 可重用性

元组无法被复制或复制。因为元组是不可改变的(不可变的)。如果你输入元组(元组名称),它会立即返回自身。

示例

names = ("Meredith", "Kristen", "Wright", "Franklin")
copy = tuple(names)
print(names is copy)

输出

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

True

示例2

names = ["Meredith", "Kristen", "Wright", "Franklin"]
copy = list(names)
print(names is copy)

输出

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

False

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程