当前位置:首页>python>一文看懂Python二维列表!新手也能轻松掌握

一文看懂Python二维列表!新手也能轻松掌握

  • 2026-10-11 08:01:11
一文看懂Python二维列表!新手也能轻松掌握
【前言】可以参看我的视频进行学习,喜欢的话,关注,点赞,分享。本系列视频教程,持续更新中,需要笔记资料的同学,可以在评论区留言。

在Python编程中,二维列表是非常实用的数据结构,你可以把它理解成“表格”“矩阵”——既有行又有列,用来存储多行多列的数据再合适不过,比如学生成绩表、棋盘、坐标数据等。

今天用最通俗的语言+完整代码演示,带你从零学会二维列表的创建、访问、遍历、增删改查,新手直接复制就能用!

一、什么是二维列表?

普通列表是一维的,像一条线:

# 一维列表
lst = [1, 2, 3, 4]

二维列表就是“列表里套列表”——把一个列表当成另一个列表的元素,形成行+列结构,像一个表格:

# 二维列表(3行2列)
two_dim_lst = [
    [1, 2],   # 第0行
    [3, 4],   # 第1行
    [5, 6]    # 第2行
]

✅ 核心特点:

  • 外层列表管理行,内层每个子列表代表一行
  • 支持任意数据类型(数字、字符串、对象都能存)
  • 长度可以不固定(非标准矩阵也能表示)

二、二维列表的创建方法

1. 直接赋值创建(最常用、最简单)

手动定义行列数据,适合已知数据的场景:

# 3行4列的学生信息表:姓名、年龄、性别、成绩
student = [
    ["小明", 18, "男", 92],
    ["小红", 17, "女", 95],
    ["小刚", 18, "男", 88]
]

2. 循环创建空二维列表

适合需要初始化固定大小的空表,注意避坑:

# 正确写法:创建4行3列的空二维列表
rows = 4
cols = 3
lst = [[0for _ in range(cols)] for _ in range(rows)]
print(lst)
# 输出:[[0,0,0], [0,0,0], [0,0,0], [0,0,0]]

# ❌ 错误写法(所有行指向同一个列表,改一行全变)
# bad_lst = [[0]*cols]*rows

三、访问二维列表元素(核心!)

二维列表取值用双重索引:二维列表名[行索引][列索引]

⚠️ 重要:Python索引从0开始!

代码演示:

# 定义二维列表
matrix = [
    [10, 20, 30],  # 行0
    [40, 50, 60],  # 行1
    [70, 80, 90]   # 行2
]

# 1. 获取第0行第1列元素:20
print(matrix[0][1])  

# 2. 获取第2行第0列元素:70
print(matrix[2][0])  

# 3. 获取整行(第1行所有数据)
print(matrix[1])  # [40,50,60]

四、修改二维列表元素

直接通过索引赋值即可:

matrix = [[1,2],[3,4]]
# 把第1行第1列的4改成100
matrix[1][1] = 100
print(matrix)  # [[1,2],[3,100]]

五、遍历二维列表(逐行/逐元素)

遍历是处理二维数据的必备操作,有两种常用方式:

1. 逐行遍历(简单直观)

data = [["a",1],["b",2],["c",3]]
# 遍历每一行
for row in data:
    print("当前行:", row)
# 遍历行内每个元素
for item in row:
        print("元素:", item)

2. 带索引遍历(知道当前是第几行第几列)

for i, row in enumerate(matrix):
for j, val in enumerate(row):
        print(f"第{i}行第{j}列:{val}")

六、增删行/列操作

1. 添加一行(append)

lst = [[1,2],[3,4]]
# 末尾添加一行
lst.append([5,6])
print(lst)  # [[1,2],[3,4],[5,6]]

2. 删除一行(del / pop)

# 删除第0行
del lst[0]
# 或者 pop 删除并返回该行
# lst.pop(1)

3. 添加/删除列

列操作需要遍历每一行,对每行进行增删:

# 给每一行添加一个新元素(新增一列)
for row in lst:
    row.append(0)

七、完整实战案例:学生成绩统计

用二维列表实现一个学生成绩表,包含查询、总分计算,直接运行可用:

# 二维列表存储:姓名 语文 数学 英语
scores = [
    ["小明", 90, 85, 95],
    ["小红", 88, 92, 96],
    ["小亮", 95, 90, 89]
]

print("=== 学生成绩统计 ===")
# 遍历计算总分
for idx, student in enumerate(scores):
    name = student[0]
    total = student[1] + student[2] + student[3]
    print(f"第{idx+1}位:{name},总分:{total}")

运行结果:

=== 学生成绩统计 ===
第1位:小明,总分:270
第2位:小红,总分:276
第3位:小亮,总分:274

八、新手必看:常见坑点

  1. 索引越界:行/列索引超过列表长度会报错
  2. 浅拷贝问题:用 [[0]*n]*m 创建的列表,改一行所有行都会变
  3. 数据类型混乱:建议同一列保持相同数据类型(方便处理)

总结

  1. 二维列表 = 列表嵌套列表,对应表格/矩阵
  2. 取值:列表[行][列],索引从0开始
  3. 常用操作:创建、访问、遍历、增删改
  4. 实战场景:成绩表、棋盘、坐标、数据集存储

这个知识点超适合Python新手打基础,代码都能直接复制运行,收藏起来随时看!

最新文章

随机文章