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

Python如何对列表按2、3交替的非固定间隔切片分组?

Python 交替步长拆分列表实现方案

你之前的固定步长写法只能按统一间隔拆分,要实现2、3交替的拆分规则,需要动态调整每次截取的切片长度,参考实现如下:

方法1:基础循环实现(可读性最高,适配所有长度的输入列表)

meta_stocks = [10, 9, 11, 15, 19, 22, 25, 11, 15, 17]
result = []
current_index = 0
list_length = len(meta_stocks)
# 初始步长为2,后续循环切换2和3
step = 2

while current_index < list_length:
    # 截取对应步长的切片
    result.append(meta_stocks[current_index:current_index + step])
    current_index += step
    # 切换步长
    step = 3 if step == 2 else 2

print(result)

运行输出:
[[10, 9], [11, 15, 19], [22, 25], [11, 15, 17]]

方法2:简洁迭代器实现

如果偏好更短的代码写法,可以用迭代器实现:

meta_stocks = [10, 9, 11, 15, 19, 22, 25, 11, 15, 17]
it = iter(meta_stocks)
step_cycle = iter(lambda: [next(it, None) for _ in range(5)], [None]*5)
result = []
for group in step_cycle:
    valid = [x for x in group if x is not None]
    if not valid: break
    result.extend([valid[:2], valid[2:]] if len(valid)>2 else [valid])
print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:36:02