在for循环中引用Python iterable的相邻项
这是一个非常基本的语法问题,我只是不知道如何做/不知道如何寻找解释。基本上,您可以很容易地比较/计算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
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更直观的东西。