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

Python如何按步长拆分列表为固定长度子列表的最短实现方法

错误原因

你当前写的b = [i for i in a[::2]]仅能提取列表下标为偶数的元素,得到的是一维列表[1,3,5,7,9],不符合两两分组的需求。

最短实现方案

最短的原生Python实现(兼容所有Python3版本)如下:

b = [a[i:i+2] for i in range(0, len(a), 2)]

实现逻辑

  • range(0, len(a), 2)生成步长为2的下标序列:0,2,4,6,8
  • 每次切片a[i:i+2]截取连续2个元素组成子列表,即使原列表长度为奇数也能正常处理剩余元素

如果使用Python3.12及以上版本,可以用标准库内置方法,可读性更高:

from itertools import batched
b = list(batched(a, 2))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:54:08