我正在使用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'>:未定义全局名称’next’
解决方法
您可以自己轻松提供此功能的定义:
- _sentinel = object()
- def next(it,default=_sentinel):
- try:
- return it.next()
- except StopIteration:
- if default is _sentinel:
- raise
- return default