Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在for循环中引用Python iterable的相邻项_Python_Loops_For Loop_Iterable - Fatal编程技术网

在for循环中引用Python iterable的相邻项

在for循环中引用Python iterable的相邻项,python,loops,for-loop,iterable,Python,Loops,For Loop,Iterable,这是一个非常基本的语法问题,我只是不知道如何做/不知道如何寻找解释。基本上,您可以很容易地比较/计算iterable连续项之间的内容,例如: for i in range(len(iterable)): if iterable[i] == iterable[i + 1]: do whatever 但似乎确实应该有一种方法来做到这一点,而不必去搞范围(len())的事情?比如,我应该可以 for item in iterable: if item == nexti

这是一个非常基本的语法问题,我只是不知道如何做/不知道如何寻找解释。基本上,您可以很容易地比较/计算iterable连续项之间的内容,例如:

for i in range(len(iterable)):
    if iterable[i] == iterable[i + 1]:
        do whatever
但似乎确实应该有一种方法来做到这一点,而不必去搞范围(len())的事情?比如,我应该可以

for item in iterable:
    if item == nextitem:
        do whatever

除了“nextitem”是某种关键字或切片语法,或者……我真的不知道它是什么,我只是觉得它必须存在。我认为对于item,iterable中的nextitem可能会起作用,但这似乎只是指iterable中的元组。我在这里寻找什么?

没有一种内置的方法可以做到这一点,但它可以:

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


根据您的iterable实际是什么,您可以执行
zip(iterable[:-1],iterable[1:])

我没有想到使用zip!这看起来还是很奇怪,一些更直观的东西没有内置?但如果不是,也不是。zip的东西可以工作,而且它比我最初拥有的range(len())的东西要简单;谢谢我不明白你的抱怨<代码> zip 是一个内置函数。是的,但是我不认为使用zip的方法是特别直观的。似乎奇怪的是,没有内置比使用zip更直观的东西。