二维列表就是列表里套列表,相当于表格/矩阵,是 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("未找到该数字")
总结
- 二维列表 =
[[], [], []],用双层循环处理最常用