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

如何用Python从空格分隔的数字字符串提取3x3矩阵列表

实现方法

基础Python实现

不需要依赖任何第三方库,用列表推导式就能简洁完成:

  1. 先把字符串分割并转换为整数列表:
x = "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18"
nums = list(map(int, x.split()))
  1. 直接通过嵌套列表推导式生成目标结构:
# 先按9个元素为一组拆分(对应一个3x3矩阵),每组再拆成3个3元素子列表
result = [
    [block[j:j+3] for j in range(0, 9, 3)]
    for block in [nums[i:i+9] for i in range(0, len(nums), 9)]
]

或者更紧凑的写法:

result = [
    [nums[i+j*3 : i+j*3+3] for j in range(3)]
    for i in range(0, len(nums), 9)
]

第三方库(NumPy)实现

如果项目中已经在用NumPy,这个方法会更简洁:

import numpy as np

x = "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18"
nums = np.array(list(map(int, x.split())))
# reshape的-1表示自动计算该维度的长度,这里会自动生成N个3x3矩阵
result = nums.reshape(-1, 3, 3).tolist()

两种方法最终输出都符合预期:[[[1,2,3],[4,5,6],[7,8,9]],[[10,11,12],[13,14,15],[16,17,18]]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:25:26