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

Python中如何将列表元素按每行2个填充为矩阵?

将列表按指定行数分割为嵌套列表

首先看你写的代码存在的问题:

  • 初始化b = [[]],但循环中使用b[i],当i从1开始时,b的长度只有1,会触发索引越界错误
  • 嵌套的j循环会重复2次添加同一个c[i]元素,逻辑完全不符合需求

下面是几种正确的实现方式:

方法1:利用列表切片(最简洁)

直接通过切片按步长分割原列表:

c = [1, 2, 3, 4, 5, 6]
row_size = 2
b = [c[i:i+row_size] for i in range(0, len(c), row_size)]
print(b)  # 输出 [[1,2], [3,4], [5,6]]

方法2:手动循环构建

如果想用循环实现,可以这样写:

c = [1, 2, 3, 4, 5, 6]
row_size = 2
b = []
current_row = []

for num in c:
    current_row.append(num)
    # 当当前行元素数量达到指定长度时,加入矩阵并重置当前行
    if len(current_row) == row_size:
        b.append(current_row)
        current_row = []

# 如果原列表长度不是row_size的整数倍,把剩余元素加入(这里原列表刚好整除,可省略)
if current_row:
    b.append(current_row)

print(b)  # 输出 [[1,2], [3,4], [5,6]]

方法3:使用迭代器(适合大数据量)

用iter()把列表转为迭代器,再批量取元素:

c = [1, 2, 3, 4, 5, 6]
row_size = 2
it = iter(c)
b = [list(next(it) for _ in range(row_size)) for _ in range(len(c)//row_size)]
print(b)  # 输出 [[1,2], [3,4], [5,6]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:25:28