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

如何用单行函数实现将列表按指定位置拆分生成M个子列表?

单行实现按列提取分区元素生成子列表

直接利用Python列表的切片步长特性,就能一行代码搞定需求:

lg = [1,2,3,4,5,6,7,8,9]
M = 3
sub_lists = [lg[i::M] for i in range(M)]

执行后得到的sub_lists就是[[1,4,7], [2,5,8], [3,6,9]],完全符合预期。

原理说明

  • lg[i::M] 表示从原列表的第i个元素开始,每隔M个元素取一个值。对应到需求里,原列表拆分为长度为N/M的分区后,每个分区的第i个元素在原列表中的索引正好是i, i+M, i+2M...,切片操作直接就能提取出目标子列表。
  • 用列表推导式遍历0到M-1的索引,一次性生成所有M个子列表,完美实现单行代码的要求。

这个写法适用于所有满足N=a*M(a≥1)的情况,比如当lg=[1,2,3,4]、M=2时,会得到[[1,3], [2,4]],完全符合规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 16:10:31