在Python中,使用列表(List)来模拟二维数组。下面是关于二维数组的创建、单个赋值以及整行赋值的方法:
1. 二维数组的创建:
# 方法1:使用嵌套列表
rows, cols = 3, 4
matrix = [[0 for _ in range(cols)] for _ in range(rows)]
# 输出:[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
# 方法2:直接设置列表
matrix = [[0] * 4 for _ in range(3)]
# 输出:[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
# 方法3:使用NumPy库
import numpy as np
rows, cols = 3, 4
matrix = np.zeros((rows, cols), dtype=int)
# 输出:
# [[0 0 0 0]
# [0 0 0 0]
# [0 0 0 0]]
2. 单个元素赋值:
# 指定行和列进行单个元素赋值
matrix[1][2] = 42
# 输出:
# [[ 0 0 0 0]
# [ 0 0 42 0]
# [ 0 0 0 0]]
3. 整行赋值:
# 方法1:使用循环遍历赋值
matrix[1] = [1, 2, 3, 4]
# 输出:
# [[0 0 0 0]
# [1 2 3 4]
# [0 0 0 0]]
# 方法2:使用NumPy库
matrix[1, :] = np.array([5, 6, 7, 8])
# 输出:
# [[0 0 0 0]
# [5 6 7 8]
# [0 0 0 0]]
这里,matrix[1] 表示第二行(因为索引是从0开始的),而 matrix[:, 2] 表示第三列。在使用NumPy库时,可直接使用切片或数组赋值的方式进行整行或整列的赋值,更加方便。
4.整行赋值相同:
如果你想将整行都赋予相同的值,你可以使用以下方法:
1. 使用循环遍历:
# 创建一个3行4列的二维数组,并将第二行全部赋值为10
rows, cols = 3, 4
matrix = [[0 for _ in range(cols)] for _ in range(rows)]
row_to_assign = 1 # 行索引,注意索引是从0开始的
value_to_assign = 10
matrix[row_to_assign] = [value_to_assign] * cols
# 输出:[[0, 0, 0, 0], [10, 10, 10, 10], [0, 0, 0, 0]]
2. 使用NumPy库:
import numpy as np
# 创建一个3行4列的二维数组,并将第二行全部赋值为10
rows, cols = 3, 4
matrix = np.zeros((rows, cols), dtype=int)
row_to_assign = 1 # 行索引,注意索引是从0开始的
value_to_assign = 10
matrix[row_to_assign, :] = value_to_assign
# 输出:
# [[ 0 0 0 0]
# [10 10 10 10]
# [ 0 0 0 0]]
在这两种方法中,[value_to_assign] * cols 创建了一个具有 cols 个元素,都为 value_to_assign 的列表,然后将这个列表赋值给指定行。使用NumPy时,可以直接使用 matrix[row_to_assign, :] = value_to_assign 进行整行赋值。