Python中List、Tuple与Numpy Array的核心区别解析

Felix
Felix
发布时间:2026-10-13| 5人浏览过
原创

本文详细解析Python中列表(list)、元组(tuple)与Numpy数组(array)的区别。List可变且存储指针,Tuple不可变且安全,Array要求同类型数据以提升性能。通过对比内存占用、操作限制及二维处理,帮助开发者根据场景选择合适的数据结构。

1. 列表(List)

列表是一种用于存储有序项目序列的数据结构。在Python中,列表通过方括号[]来定义,例如 [item1, item2]。列表支持动态操作,允许在创建后对元素进行添加、删除或查找。由于列表内容可以被修改,它被归类为可变数据类型(mutable),并且支持嵌套结构,即列表中可以包含其他列表。

列表具备动态增减元素的能力,主要依靠 append() 和 del 语句(或 remove/pop 等方法)来实现元素的增加与删除操作。

2. 元组(Tuple)

元组在语法上与列表非常相似,但核心区别在于元组是不可变的(immutable)。这意味着一旦元组创建,其内容无法被修改。元组通过圆括号()定义,元素间用逗号分隔。元组常用于需要确保数据不被意外修改的场景,例如作为函数参数或字典键,以保证值的安全性。元组同样支持嵌套。

>>> zoo=('wolf','elephant','penguin')
>>> zoo.count('penguin')
1
>>> zoo.index('penguin')
2
>>> zoo.append('pig')
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
>>> del zoo[0]
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion

3. 数组(Array)

在Python中,通常使用 numpy 库提供的 np.array() 函数来创建数组。与列表不同,列表中的元素可以是不同类型的数据,而 Numpy 数组中的所有元素必须具有相同的数据类型。从内存角度来看,列表存储的是指向实际数据的指针,而非数据本身。例如,对于列表 list1=[1, 2, 3, 'a'],Python 需要存储4个指针和对应的数据对象,这增加了内存开销和CPU消耗。相比之下,数组直接存储同类型数据,更加高效。

Numpy 封装的 array 提供了强大的数值计算功能,其内部存储的数据类型必须一致,从而保证了计算的高效性和内存的紧凑性。

接下来探讨二维数组的处理方式。

print c[1:2]# c[1:2].shape-->(1L, 3L) 
print c[1:2][0] # shape-->(3L,) 

输出结果为:[[4 4 5]] 和 [4 4 5]

print c[1] 
print c[1:2] 

输出结果为:[4 4 5] 和 [[4 4 5]]

print c[1][2] 
print c[1:4] 
print c[1:4][0][2] 

表达式 print(a[1][2]) 用于访问二维数组中第二行第三个元素的值。

以上关于Python中列表(list)、元组(tuple)和Numpy数组(array)区别的详细解析到此结束,希望能为读者提供有效的参考。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。