9 python iteration list list-manipulation python-itertools
在滑动对中迭代列表的Pythonic有效方法是什么?这是一个相关的例子:
>>> l
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> for x, y in itertools.izip(l, l[1::2]): print x, y
...
a b
b d
c f
Run Code Online (Sandbox Code Playgroud)
这是成对迭代,但我们如何在滑动对上进行迭代?意味着迭代对:
a b
b c
c d
d e
etc.
Run Code Online (Sandbox Code Playgroud)
这是对的迭代,除了每次将1对元素滑动而不是2个元素.谢谢.
chm*_*lig 13
你可以更简单.只需压缩列表,列表偏移一.
In [4]: zip(l, l[1:])
Out[4]: [('a', 'b'), ('b', 'c'), ('c', 'd'), ('d', 'e'), ('e', 'f'), ('f', 'g')]
Run Code Online (Sandbox Code Playgroud)
怎么样:
for x, y in itertools.izip(l, l[1:]): print x, y
Run Code Online (Sandbox Code Playgroud)