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

如何实现嵌套列表的连续双元素切片迭代?

实现方法解析

嘿,我来帮你搞定这个问题!首先咱们先明确需求:你有列表 lst = [[1, 1], [2, 2], [3, 3], [4,4]],想要生成三个连续的两两元素切片,顺序正好是从后往前的三组相邻元素,对吧?

核心思路

观察你要的三个切片:

  • 切片1:[3, 3], [4, 4] → 对应原列表索引2到4的切片(lst[2:4])
  • 切片2:[2, 2], [3, 3] → 对应原列表索引1到3的切片(lst[1:3])
  • 切片3:[1, 1], [2, 2] → 对应原列表索引0到2的切片(lst[0:2])

本质就是从原列表的倒数第二个元素的索引开始,倒序遍历到第一个元素的索引,每次取当前索引到当前索引+2的子列表,就能得到你要的结果。

代码实现

用Python的列表推导式就能轻松搞定,代码如下:

lst = [[1, 1], [2, 2], [3, 3], [4,4]]
# 生成目标切片列表
target_slices = [lst[i:i+2] for i in range(len(lst)-2, -1, -1)]

# 按你的格式输出验证
for slice_num, slc in enumerate(target_slices, start=1):
    print(f"切片{slice_num}: {slc}")

运行这段代码后,输出结果完全符合你的要求:

切片1: [[3, 3], [4, 4]]
切片2: [[2, 2], [3, 3]]
切片3: [[1, 1], [2, 2]]

代码解释

  • range(len(lst)-2, -1, -1):这里起始值是4-2=2(原列表长度为4,倒数第二个元素的索引是2),结束值设为-1(因为range是左闭右开,这样会包含索引0),步长为-1实现倒序遍历,所以循环的索引i依次是2、1、0。
  • lst[i:i+2]:Python的切片语法[起始索引:结束索引]是左闭右开,所以i:i+2会取到索引i和i+1的两个元素,正好是你要的两两分组。

这种方法还很灵活,如果你的原列表长度变化(比如更长),只要是需要生成所有连续两两元素的倒序切片,都能直接复用这段代码~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:09:18