You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MxN矩阵的所有行替换为1到N的数值序列?

解决MxN矩阵行替换为1到N序列的问题

核心思路

不管原矩阵的行内容是什么,只需生成一个长度为N的序列[1,2,...,N],让矩阵的每一行都等于这个序列即可。

Python 实现方法

方法1:直接生成新矩阵(最简洁)

无需修改原矩阵,直接构造目标矩阵:

# 原矩阵
matrix = [[4,6,8,9,3],[5,1,2,5,6],[1,9,4,5,7],[3,8,8,2,5],[1,4,2,2,7]]
# 获取每行的长度N
n = len(matrix[0])
# 生成目标矩阵:M行,每行都是1到N的序列
new_matrix = [[num for num in range(1, n+1)] for _ in matrix]
print(new_matrix)

输出结果:

[[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]

方法2:遍历修改原矩阵

如果需要直接修改原矩阵,注意避免所有行引用同一个列表对象:

matrix = [[4,6,8,9,3],[5,1,2,5,6],[1,9,4,5,7],[3,8,8,2,5],[1,4,2,2,7]]
n = len(matrix[0])
# 先生成目标行
target_row = list(range(1, n+1))
# 遍历每一行替换
for i in range(len(matrix)):
    # 使用copy()避免所有行指向同一个列表
    matrix[i] = target_row.copy()
print(matrix)

关键注意点

  • 确保矩阵非空且所有行长度一致(符合MxN矩阵定义),否则需先做合法性检查。
  • 若直接赋值matrix[i] = target_row,所有行将共享同一个列表引用,后续修改其中一行会影响所有行,因此必须使用copy()或重新生成序列。

内容的提问来源于stack exchange,提问作者NoahRyu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:50:26