Python 创建与遍历二维列表(List)的两种方法

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

本文详细介绍在 Python 中创建二维列表的方法,重点对比了通过索引遍历和通过句柄(直接迭代元素)遍历两种实现方式。文章指出 Python 二维列表无需像 C 或 Java 那样保证每行列数相等,并通过具体代码示例展示了如何计算列表元素总和,帮助开发者掌握灵活处理不规则二维数据的技术。

Python 二维列表的创建方法

在 Python 中创建二维列表(List)时,可以采用列表推导式或循环追加的方式初始化结构。例如,先创建一个包含三个空子列表的基础结构,随后通过循环分别向不同的子列表中添加不同数量的元素,从而构建出一个非矩形的二维数据结构。


lists = [[] for i in range(3)] # 创建的是多行三列的二维列表
for i in range(3):
  lists[0].append(i)
for i in range(5):
  lists[1].append(i)
for i in range(7):
  lists[2].append(i)
print("lists is:", lists)
# lists is: [[0, 1, 2], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4, 5, 6]]

基于索引的二维列表遍历

遍历二维列表时,可以使用双重循环结合索引的方式访问每一个元素。外层循环控制行索引,内层循环控制列索引,通过 `lists[i][j]` 的形式获取具体数值。这种方式适用于需要对元素位置进行精确控制或进行索引相关操作的场景。

二维列表的非矩形特性

需要注意的是,Python 中的二维列表与 MATLAB、C 或 Java 等语言不同,它不要求每一行的列数必须相等。这种灵活性允许开发者创建“锯齿状”数组,即各行长度可以不一致,这在处理不规则数据时非常有用。


sum_0 = 0
for i in range(len(lists)):
  for j in range(len(lists[i])):
    print(lists[i][j])
    sum_0 += lists[i][j]
print("The sum_0 of Lists:", sum_0)

# 0
# 1
# 2
# 0
# 1
# 2
# 3
# 4
# 0
# 1
# 2
# 3
# 4
# 5
# 6
# The sum of Lists: 34

基于句柄的二维列表遍历

另一种遍历二维列表的方法是使用句柄(即直接迭代列表对象)。通过外层循环直接获取子列表,内层循环直接获取子列表中的元素,无需关心具体的索引位置。这种方式代码更简洁,符合 Python 简洁易读的设计哲学,特别适合只需处理元素值而不需要索引信息的场景。


sum_1 = 0
for i in lists:
  for j in i:
    sum_1 += j

print("The sum_1 of Lists:", sum_1)
# The sum_1 of Lists: 34

总结

总结来看,Python 提供了灵活且强大的二维列表处理能力。无论是通过索引精确控制,还是通过句柄简洁遍历,开发者都可以根据实际需求选择合适的方式。理解二维列表的非矩形特性以及两种遍历模式的差异,有助于写出更高效、更地道的 Python 代码。

以上介绍了 Python 创建与遍历二维列表的核心方法。希望这些内容能对您的编程工作有所帮助。如有任何疑问或需要进一步探讨的技术细节,欢迎留言交流,我们将及时回复。感谢您的支持与关注,如果觉得本文对您有价值,欢迎转载,请注明出处。

相关标签:

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

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 算法库。