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

如何遍历列表并按指定数量拆分生成子列表?

列表按指定长度拆分的解决方案

给定列表:

test = ['1', '1', '1', '1', '1', '1']

和指定数字(如num = 2),需要将原列表拆分为每个子列表包含指定数量元素的新列表。例如num=2时期望得到:

[['1','1'], ['1','1'], ['1','1']]

num=3时期望得到:

[['1', '1', '1'], ['1','1','1']]

以下是两种可行的解决方案:

方法一:切片推导式(简洁高效)

利用Python的切片特性,一行代码就能完成拆分:

test = ['1', '1', '1', '1', '1', '1']
num = 2
result = [test[i:i+num] for i in range(0, len(test), num)]
print(result)

原理:range(0, len(test), num)生成从0开始、步长为num的索引序列,每次通过test[i:i+num]截取对应长度的子列表,最终组成结果列表。

方法二:循环实现(对应你提供的未完成代码)

如果想用循环逐步处理元素,可以这样写:

test = ['1', '1', '1', '1', '1', '1']
num = 2
result = []
current_sublist = []

for item in test:
    current_sublist.append(item)
    # 当当前子列表长度达到指定值时,存入结果并重置临时列表
    if len(current_sublist) == num:
        result.append(current_sublist)
        current_sublist = []

# 处理原列表长度不是num整数倍时的剩余元素(本例中无需执行)
if current_sublist:
    result.append(current_sublist)

print(result)

原理:用临时列表current_sublist收集元素,每收集到num个元素就将其加入结果列表,然后清空临时列表继续收集下一组。最后如果还有未凑满num的元素,也一并加入结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 20:22:41