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

如何用Pythonic方式循环列表并同时获取当前与下一个元素?

Pythonic方式循环列表同时获取当前与下一个元素

要实现你需要的无限循环遍历,同时获取当前元素和下一个元素,可以借助itertools模块的cycle和islice来实现,这是非常Pythonic的方案:

封装成MAGIC函数的实现

from itertools import cycle, islice

def MAGIC(seq):
    seq_cycle = cycle(seq)
    # 将原循环序列与偏移一位的循环序列配对
    return zip(seq_cycle, islice(seq_cycle, 1, None))

stuff = ['a', 'b', 'c', 'd']
print(stuff)
for curr_item, next_item in MAGIC(stuff):
    print("current:", curr_item)
    print("next:", next_item)

直接在循环中使用的简化写法

如果不需要封装函数,也可以直接在循环里组合两个迭代器:

from itertools import cycle, islice

stuff = ['a', 'b', 'c', 'd']
print(stuff)
for curr_item, next_item in zip(cycle(stuff), islice(cycle(stuff), 1, None)):
    print("current:", curr_item)
    print("next:", next_item)

原理说明

  • cycle(stuff)会创建一个无限循环遍历stuff的迭代器;
  • islice(cycle(stuff), 1, None)会从循环序列的第二个元素开始取,相当于把原循环序列偏移了一位;
  • zip将两个迭代器配对,每次迭代就能得到当前元素和对应的下一个元素,当遍历到最后一个元素d时,下一个元素会回到a,实现无限循环的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:30:54