import next()python 2.5

时间:2012-07-25 14:46:50

标签: python next

我使用了itertools的成对配方的略微修改版本,看起来像这样

def pairwise(iterable):
    "s -> (s0,s1), (s1,s2), (s2, s3), ..."
    a, b = tee(iterable)
    next(b, None)
    return zip(a, b) 

现在我发现需要使用 python 2.5 运行代码,其中next()函数抛出以下异常:

<type 'exceptions.NameError'>: global name 'next' is not defined

有没有办法在python 2.5中使用next()?或者我如何修改函数以使其无论如何工作?

1 个答案:

答案 0 :(得分:10)

您可以自己轻松提供此功能的定义:

_sentinel = object()
def next(it, default=_sentinel):
    try:
        return it.next()
    except StopIteration:
        if default is _sentinel:
            raise
        return default