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

如何在不使用numpy的情况下将一维扁平列表重塑为二维列表数组?

无需NumPy的一维列表重塑方法

完全可以用Python原生语法实现,不需要依赖任何第三方库,核心思路是利用列表切片结合列表推导式拆分原列表:

直接实现方式

针对你的两个列表,分别指定每个子列表的长度(chunk size)即可:

# 处理列表A
A = [2, -4, 3, 3, 1, 2, 1, 4, -1]
chunk_size_A = 3
reshaped_A = [A[i:i+chunk_size_A] for i in range(0, len(A), chunk_size_A)]

# 处理列表B
B = [1, 2, 3, 4, 5, 6]
chunk_size_B = 2
reshaped_B = [B[i:i+chunk_size_B] for i in range(0, len(B), chunk_size_B)]

执行后得到的结果完全符合需求:

  • reshaped_A → [[2, -4, 3], [3, 1, 2], [1, 4, -1]]
  • reshaped_B → [[1, 2], [3, 4], [5, 6]]

封装成可复用函数

如果需要多次处理不同列表,可以封装成轻量函数提高复用性:

def reshape_list(lst, chunk_size):
    """将一维列表拆分为指定子列表长度的二维列表"""
    return [lst[i:i+chunk_size] for i in range(0, len(lst), chunk_size)]

# 调用示例
reshaped_A = reshape_list([2, -4, 3, 3, 1, 2, 1, 4, -1], 3)
reshaped_B = reshape_list([1, 2, 3, 4, 5, 6], 2)

注意事项

  • 若原列表长度不是chunk_size的整数倍,最后一个子列表会自动取剩余元素(比如原列表长度为7、chunk_size为3时,会得到两个长度3的子列表和一个长度1的子列表)。
  • 该方法完全基于Python原生特性,运行效率高,无额外依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 19:00:59