Python-遍历列表中的所有成对连续项

给出清单

l = [1, 7, 3, 5]

我想遍历所有成对的连续列表项(1,7), (7,3), (3,5),即

for i in xrange(len(l) - 1):

x = l[i]

y = l[i + 1]

# do something

我想以更紧凑的方式做到这一点,例如

for x, y in someiterator(l): ...

有没有办法使用内置的Python迭代器来做到这一点?我确定该itertools模块应该有解决方案,但我无法弄清楚。

回答:

只需使用拉链

>>> l = [1, 7, 3, 5]

>>> for first, second in zip(l, l[1:]):

... print first, second

...

1 7

7 3

3 5

如建议的那样,你可能会考虑izipitertools很长的列表中使用此函数,而这些列表又不想创建新列表。

import itertools

for first, second in itertools.izip(l, l[1:]):

...

以上是 Python-遍历列表中的所有成对连续项 的全部内容, 来源链接: utcz.com/qa/420355.html

回到顶部