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

如何按规则将普通列表转换为嵌套列表

解决列表按列分组转换的几种方法

嘿,这个转换其实就是把一维列表按列重新分组,我给你分享几种Python里简单易懂的实现方式,你可以根据自己的需求选:

方法1:列表推导式 + 步长切片(最简洁)

利用Python列表的切片特性,从不同起始索引开始,按步长3取元素:

main_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
ans_list = [main_list[i::3] for i in range(3)]
print(ans_list)  # 输出: [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

原理:main_list[i::3]表示从索引i开始,每隔3个元素取一个值。循环i从0到2,正好生成三个符合要求的子列表。

方法2:分块后转置(通用场景适用)

如果你的列表长度是n*3(比如更长的列表),可以先按行分块,再通过转置得到列分组:

main_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 先按每3个元素分块,得到 [[1,2,3], [4,5,6], [7,8,9]]
chunks = [main_list[i:i+3] for i in range(0, len(main_list), 3)]
# 用*解包chunks,再zip转置,最后转成列表
ans_list = [list(group) for group in zip(*chunks)]
print(ans_list)

这种方法扩展性更强,比如如果要分成4列,只需要把3改成4就行。

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

如果想更直观地看到分组过程,可以用循环+取模的方式:

main_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
ans_list = [[], [], []]  # 初始化三个空列表
for idx, num in enumerate(main_list):
    # 索引对3取模,决定元素放到哪个子列表
    ans_list[idx % 3].append(num)
print(ans_list)

这种方式逻辑清晰,新手也能快速理解每一步的操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 02:44:08