遍历列表时获取下一个元素

遍历列表时获取下一个元素,第1张

遍历列表时获取下一个元素

经过仔细考虑之后,我认为这是最好的方法。它使您无需使用即可轻松过渡到中间

break
,我认为这很重要,而且所需的计算量最少,因此我认为这是最快的。它也不需要
li
是列表或元组。它可以是任何迭代器。

from itertools import cycleli = [0, 1, 2, 3]running = Truelicycle = cycle(li)# Prime the pumpnextelem = next(licycle)while running:    thiselem, nextelem = nextelem, next(licycle)

我将其他解决方案留给后代。

所有这些花哨的迭代器内容都有其位置,但不在这里。使用%运算符。

li = [0, 1, 2, 3]running = Truewhile running:    for idx, elem in enumerate(li):        thiselem = elem        nextelem = li[(idx + 1) % len(li)]

现在,如果您打算无限循环浏览列表,则只需执行以下 *** 作:

li = [0, 1, 2, 3]running = Trueidx = 0while running:    thiselem = li[idx]    idx = (idx + 1) % len(li)    nextelem = li[idx]

我认为,这比涉及的其他解决方案更容易理解

tee
,而且也可能更快。如果您确定列表不会更改大小,则可以松开副本
len(li)
并使用它。

这也使您可以轻松地从中间踩下摩天轮,而不必等待铲斗再次下降到底部。其他解决方案(包括您的解决方案)要求您

running
for
循环的中间进行检查,然后再进行检查
break



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5649403.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存