我想循环遍历一个列表,检查每一项与它后面的项是否一致。
有没有一种方法可以使用for x in y遍历除最后一项之外的所有项?如果可以的话,我更喜欢不使用索引。
便笺
自由空间回答了我的实际问题,这就是为什么我接受了答案,但SilentGhost回答了我应该问的问题。
对于造成的混乱,我表示歉意。
发布于 2009-05-27 09:04:36
for x in y[:-1]
如果y
是一个生成器,那么上面的代码将不起作用。
发布于 2009-05-27 09:26:30
将序列项与以下项进行比较的最简单方法:
for i, j in zip(a, a[1:]):
# compare i (the current) to j (the following)
发布于 2009-05-27 09:18:48
如果您希望以配对的方式获取序列中的所有元素,请使用此方法(配对函数来自itertools模块中的示例)。
from itertools import tee, izip, chain
def pairwise(seq):
a,b = tee(seq)
b.next()
return izip(a,b)
for current_item, next_item in pairwise(y):
if compare(current_item, next_item):
# do what you have to do
如果需要将最后一个值与某些特定值进行比较,请将该值链接到末尾
for current, next_item in pairwise(chain(y, [None])):
https://stackoverflow.com/questions/914715
复制相似问题