当前位置:首页>python>Python 二维列表练习(从基础到进阶)

Python 二维列表练习(从基础到进阶)

  • 2026-10-11 08:00:13
Python 二维列表练习(从基础到进阶)
【前言】可以参看我的视频进行学习,喜欢的话,关注,点赞,分享。
本系列课程持续更新中,需要笔记代码的朋友可以在评论区留言。

二维列表就是列表里套列表,相当于表格/矩阵,是 Python 最常用的数据结构之一。我给你整理了 8 个经典练习题,代码可直接运行,适合新手练习。

先复习:二维列表基础

# 3行4列的二维列表(表格)
matrix = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12]
]

# 访问第2行第3列元素(索引从0开始)
print(matrix[1][2])  # 输出 7

练习1:创建并打印二维列表

要求:创建一个 4 行 3 列的二维列表,逐行打印。

# 创建二维列表
arr = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
    [10, 11, 12]
]

# 逐行打印
print("完整二维列表:")
for row in arr:
    print(row)

练习2:遍历所有元素

要求:把二维列表里所有数字挨个打印出来。

arr = [[1,2],[3,4],[5,6]]

# 双层循环遍历
for row in arr:
for num in row:
        print(num, end=" ")

练习3:求二维列表所有元素的和

要求:计算所有数字的总和。

matrix = [[1,2,3], [4,5,6], [7,8,9]]
total = 0

for row in matrix:
    total += sum(row)  # sum(行) 求一行的和

print("总和 =", total)  # 45

练习4:求每行的最大值

要求:输出每一行的最大数字。

scores = [
    [90, 85, 92],
    [78, 82, 80],
    [95, 88, 96]
]

for i, row in enumerate(scores):
    print(f"第{i+1}行最大值:", max(row))

练习5:求每列的和(进阶)

要求:按列求和,适合理解二维列表结构。

matrix = [
    [1,2,3],
    [4,5,6],
    [7,8,9]
]

# 列数 = 第一行的长度
cols = len(matrix[0])

for j in range(cols):
    col_sum = 0
for row in matrix:
        col_sum += row[j]
    print(f"第{j+1}列的和:", col_sum)

练习6:用户输入生成二维列表

要求:输入行数、列数,手动输入数字生成二维列表。

rows = int(input("输入行数:"))
cols = int(input("输入列数:"))

# 空二维列表
matrix = []

for i in range(rows):
    row = []
    print(f"第{i+1}行,输入{cols}个数字:")
for j in range(cols):
        num = int(input())
        row.append(num)
    matrix.append(row)

print("你创建的二维列表:")
for r in matrix:
    print(r)

练习7:矩阵转置(行变列)

要求:把矩阵行列互换(面试常考)。

# 原矩阵 2行3列
matrix = [[1,2,3], [4,5,6]]

# 转置后 3行2列
transpose = [list(i) for i in zip(*matrix)]

print("转置前:")
for r in matrix: print(r)

print("转置后:")
for r in transpose: print(r)

练习8:查找某个值的位置

要求:输入一个数字,找到它在二维列表中的行和列。

matrix = [[1,3,5],[2,4,6],[7,8,9]]
target = int(input("要查找的数字:"))

found = False
for i in range(len(matrix)):
for j in range(len(matrix[i])):
if matrix[i][j] == target:
            print(f"找到:第{i+1}行,第{j+1}列")
            found = True
break
if found:
break

ifnot found:
    print("未找到该数字")

总结

  1. 二维列表 = [[], [], []],用双层循环处理最常用
  2. 访问元素:列表[行][列](索引从 0 开始)
  3. 核心操作:遍历、求和、找最值、矩阵转置、查找

最新文章

随机文章