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

Python实现固定步长分块拼接多维列表子元素的方法

嵌套列表分块拼接通用Python实现

核心逻辑拆解:

  • 按指定的行分组大小,将原二维列表拆分为多个独立行组
  • 按指定的列分块大小遍历所有列块位置,依次将每个行组内对应位置的列块拼接为新行,最终组成结果列表

通用泛型实现,支持任意分块尺寸、任意元素类型的二维列表处理:

from typing import TypeVar, List

T = TypeVar('T')

def block_concat_2d(mat: List[List[T]], row_block_size: int, col_block_size: int) -> List[List[T]]:
    # 拆分所有行组
    row_groups = []
    for row_start in range(0, len(mat), row_block_size):
        row_groups.append(mat[row_start : row_start + row_block_size])
    
    res = []
    # 按列块顺序遍历拼接
    for col_start in range(0, len(mat[0]), col_block_size):
        for group in row_groups:
            current_line = []
            for row in group:
                current_line.extend(row[col_start : col_start + col_block_size])
            res.append(current_line)
    return res

参数说明:

  • mat:输入的待处理二维列表
  • row_block_size:行分组维度,每多少行划分为一个组
  • col_block_size:列分块维度,每行内每多少个元素划分为一个块

基础示例验证

测试输入:

some_list: list[list[int]] = [[2, 5, 4, 8], [1, 9, 3, 7]]

该场景行组大小为2(所有行归为一组),列块大小为2,调用方式:

new_list = block_concat_2d(some_list, row_block_size=2, col_block_size=2)
print(new_list)
# 输出:[[2, 5, 1, 9], [4, 8, 3, 7]]

输出与预期结果完全一致。

数独棋盘场景验证

9x9数独棋盘场景下,行每3个为一组,列每3个元素为一块,调用方式:

BOARD: list[list[str]] = [['-', '3', '4', '-', '-', '6', '-', '8', '-'],
                          ['5', '2', '7', '-', '1', '8', '6', '-', '3'],
                          ['-', '6', '-', '-', '-', '9', '4', '-', '2'],
                          ['-', '-', '5', '-', '4', '-', '-', '-', '-'],
                          ['3', '9', '-', '8', '-', '-', '5', '-', '-'],
                          ['-', '4', '-', '-', '-', '2', '9', '3', '6'],
                          ['1', '-', '-', '6', '8', '4', '-', '2', '-'],
                          ['2', '-', '-', '-', '-', '-', '8', '1', '-'],
                          ['-', '-', '-', '2', '7', '1', '3', '-', '-']]

new_board = block_concat_2d(BOARD, row_block_size=3, col_block_size=3)

运行得到的new_board与手动拼接的预期结果完全匹配,无需硬编码索引,执行效率远高于手动拼接写法,且可灵活调整分块大小适配其他同类场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 22:36:20