Python二维列表
一、什么是二维列表
在Python中,列表(List)是一种可变的有序数据集合,可以存储任意类型的元素。二维列表即为列表的列表,也可以称为嵌套列表。二维列表可以理解为一个二维的表格,其中的每个元素可以通过两个索引来定位,例如,可以用list[row][col]
的方式访问表格中的元素。
二、创建二维列表
要创建一个二维列表,可以在一个外部列表中嵌套多个内部列表。下面是一个创建二维列表的示例代码:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
上述代码创建了一个包含3个内部列表的二维列表。每个内部列表都包含3个元素。我们可以通过以下方式获取二维列表的信息:
print(matrix) # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(matrix[0]) # [1, 2, 3]
print(matrix[1][2]) # 6
三、遍历二维列表
要遍历二维列表,可以使用嵌套的循环结构,外层循环用于遍历外部列表的每个元素,内层循环用于遍历内部列表的元素。下面是一个遍历二维列表的示例代码:
for row in matrix:
for element in row:
print(element, end=' ')
print()
运行结果:
1 2 3
4 5 6
7 8 9
上述代码按行遍历二维列表,并逐个输出每个元素。使用end=' '
参数可以在输出元素之间添加空格,使用print()
语句可以在每行输出后换行。
四、修改二维列表的元素
二维列表中的元素是可修改的,我们可以使用索引来修改特定位置的元素。下面是一个修改二维列表元素的示例代码:
matrix[1][2] = 10
print(matrix[1]) # [4, 5, 10]
上述代码将二维列表中索引为[1][2]
的元素修改为10,并输出了修改后的结果。
五、二维列表的常用操作
1. 获取二维列表的行数和列数
要获取二维列表的行数和列数,可以使用len()
函数。len(matrix)
可以获取二维列表的行数,len(matrix[0])
可以获取二维列表的列数。下面是一个示例代码:
row_num = len(matrix)
col_num = len(matrix[0])
print(row_num, col_num) # 3 3
2. 向二维列表添加新行或新列
添加新行或新列可以使用append()
方法。如果要添加新行,可以将一个新的列表追加到二维列表的末尾;如果要添加新列,可以遍历二维列表的每个内部列表,将新的元素追加到每个内部列表的末尾。下面是一个示例代码:
# 添加新行
new_row = [10, 11, 12]
matrix.append(new_row)
# 添加新列
new_col = 100
for row in matrix:
row.append(new_col)
print(matrix)
运行结果:
[[1, 2, 3, 100], [4, 5, 6, 100], [7, 8, 9, 100], [10, 11, 12, 100]]
上述代码分别添加了一个新行和一个新列,并输出修改后的二维列表。
3. 删除二维列表的行或列
要删除二维列表的行或列,可以使用del
语句。如果要删除某一行,可以使用del matrix[row]
;如果要删除某一列,可以遍历二维列表的每个内部列表,使用del
语句删除指定位置的元素。下面是一个示例代码:
# 删除第二行
del matrix[1]
# 删除第二列
for row in matrix:
del row[1]
print(matrix)
运行结果:
[[1, 3], [7, 9]]
上述代码分别删除了第二行和第二列,并输出修改后的二维列表。
六、应用示例:矩阵乘法
二维列表在矩阵乘法中有广泛的应用。下面是一个使用二维列表实现矩阵乘法的示例代码:
def matrix_multiply(matrix1, matrix2):
row_num1 = len(matrix1)
col_num1 = len(matrix1[0])
row_num2 = len(matrix2)
col_num2 = len(matrix2[0])
# 判断两个矩阵是否可以进行乘法运算
if col_num1 != row_num2:
print("错误:矩阵无法相乘")
return None
# 创建结果矩阵
result = []
for i in range(row_num1):
result.append([0] * col_num2)
# 矩阵乘法
for i in range(row_num1):
for j in range(col_num2):
for k in range(col_num1):
result[i][j] += matrix1[i][k] * matrix2[k][j]
return result
# 测试示例
matrix1 = [[1, 2], [3, 4]]
matrix2 = [[5, 6], [7, 8]]
result = matrix_multiply(matrix1, matrix2)
print(result) # [[19, 22], [43, 50]]
上述代码实现了两个矩阵的乘法操作,并输出了结果。
七、总结
本文详细介绍了二维列表在Python中的使用。我们了解了二维列表的概念,学习了如何创建、遍历和修改二维列表的元素。同时,还介绍了二维列表常用的操作,包括获取行数和列数,添加新行或新列,以及删除行或列。最后,还展示了一个应用示例,使用二维列表实现了矩阵乘法。