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

如何将列表拆分为多个含3个元素的子列表?(含9元素实例)

拆分列表为固定长度子列表的几种实现方式

嘿,这个需求在日常编码里太常见了!针对你给出的列表,我给你分享几种Python下的实现方案,都能完美得到你想要的结果:

方法一:列表推导式+切片(最直观易懂)

这是我平时最常用的方法,代码简洁还容易理解。核心思路是利用Python的切片特性,按步长3遍历原列表,每次截取3个元素的子列表:

original_list = ["a", 1, 2, "b", 1, 2, "c", 1, 2]
split_lists = [original_list[i:i+3] for i in range(0, len(original_list), 3)]
print(split_lists)
# 输出:[['a', 1, 2], ['b', 1, 2], ['c', 1, 2]]

解释一下:range(0, len(original_list), 3)会生成0、3、6这几个索引,每次用i:i+3截取从i开始的3个元素,刚好把原列表分成3组。

方法二:利用itertools工具库(更优雅的标准库方案)

如果你喜欢用标准库的工具,可以试试itertools里的技巧,这种方式在处理大型列表时效率也不错:

import itertools

original_list = ["a", 1, 2, "b", 1, 2, "c", 1, 2]
# 这里用zip配合迭代器分组,因为原列表长度刚好是3的倍数,zip完全适用
split_lists = [list(group) for group in zip(*[iter(original_list)]*3)]
print(split_lists)
# 输出和上面一致

原理小科普:iter(original_list)把列表转成迭代器,[iter(original_list)]*3其实是创建了3个指向同一个迭代器的引用,zip每次从这3个迭代器里各取一个元素,相当于把迭代器里的元素按顺序每3个打包成一组,最后转成列表就得到了目标结果。

方法三:手动循环(适合新手理解底层逻辑)

如果你想搞清楚分组的底层过程,手动循环的方式最清晰:

original_list = ["a", 1, 2, "b", 1, 2, "c", 1, 2]
split_lists = []
temp_group = []

for item in original_list:
    temp_group.append(item)
    # 当临时组满3个元素时,加入结果列表并清空临时组
    if len(temp_group) == 3:
        split_lists.append(temp_group)
        temp_group = []

# 注意:如果原列表长度不是3的倍数,最后temp_group可能还有剩余元素,这里可以根据需求处理
print(split_lists)

这种方式一步步展示了分组的过程,适合刚学Python的朋友理解。

以上三种方法都能满足你的需求,你可以根据自己的场景和习惯选择~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:46:49