在for循环中,请参阅Python iterable的相邻术语

Ska*_*che 4 python loops for-loop iterable

这是一个非常基本的语法问题,我只是不知道该怎么做/无法弄清楚如何寻找解释.基本上,你可以很容易地比较/计算迭代的连续项之间的事物,比如说:

for i in range(len(iterable)):
    if iterable[i] == iterable[i + 1]:
        do whatever
Run Code Online (Sandbox Code Playgroud)

但似乎肯定应该有一种方法可以做到这一点而不会搞乱范围(len())的事情?比如,我应该能够拥有

for item in iterable:
    if item == nextitem:
        do whatever
Run Code Online (Sandbox Code Playgroud)

除了"nextitem"将是某种关键字或切片语法或...我真的不知道它会是什么,我只是觉得它必须存在.我认为for item, nextitem in iterable可能会工作,但这似乎只是指迭代中的元组.我在这找什么?

mhl*_*ter 5

没有内置的方法来做到这一点,但这有效:

from itertools import izip_longest
for item, nextitem in izip_longest(iterable, iterable[1:]):
    if item == nextitem:
        do whatever better
Run Code Online (Sandbox Code Playgroud)

izip_longest文档

取决于你的迭代实际是什么,你可以做到 zip(iterable[:-1], iterable[1:])