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

Python中不使用库从单行输入生成指定大小方阵的实现方法

现有代码问题
  • 矩阵初始化逻辑错误:[[]*3]*3的写法一是硬编码了矩阵大小为3,没有适配用户输入的sizeOfMatrix;二是用*批量生成嵌套列表会导致所有子列表指向同一内存地址,修改任意子元素都会同步修改所有对应位置的元素,属于Python列表操作的常见错误。
  • 缺少输入预处理步骤:没有将输入的单行空格分隔字符串转换为整数序列,无法直接用于矩阵元素赋值。
正确实现代码
sizeOfMatrix = int(input())
# 将单行输入的空格分隔数字转为整数列表
input_nums = list(map(int, input().split()))
# 初始化sizeOfMatrix * sizeOfMatrix的矩阵
matrix = [[0 for _ in range(sizeOfMatrix)] for _ in range(sizeOfMatrix)]

# 双层循环赋值
current_index = 0
for i in range(sizeOfMatrix):
    for j in range(sizeOfMatrix):
        matrix[i][j] = input_nums[current_index]
        current_index += 1
简化实现方案

不需要手动写双层循环计数,直接用列表切片按行切割输入序列即可生成矩阵,代码更简洁:

sizeOfMatrix = int(input())
input_nums = list(map(int, input().split()))
matrix = [input_nums[i*sizeOfMatrix : (i+1)*sizeOfMatrix] for i in range(sizeOfMatrix)]
注意事项
  • 输入的单行数字个数需要等于sizeOfMatrix * sizeOfMatrix,否则会出现索引越界或矩阵元素缺失的问题。
  • 第二种切片实现不需要提前初始化矩阵,执行效率更高,代码可读性也更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:42:03