我试图在迭代器上使用next
函数,但是,我在同一作用域中有一个名为next
的局部变量。显而易见的解决方案是重命名局部变量,但是,我对Python很新,所以我很想学习如何为next
函数添加前缀,以便实现所需的行为。
我正在使用的代码看起来像这样:
for prev, curr, next in neighborhood(list):
if (prev == desired_value):
print(prev+" "+next)
desired_value = next(value_iterator)
请注意,我使用的是Python 3.2。
答案 0 :(得分:10)
您可以使用__builtins__.next
来引用next
内置功能。</ p>
for prev, curr, next in neighborhood(list):
if (prev == desired_value):
print(prev+" "+next)
desired_value = __builtins__.next(value_iterator)
但是,正如您所指出的,显而易见的解决方案是为变量使用不同的名称。
答案 1 :(得分:6)
您可以直接调用迭代器的next()
方法。但是,你失去了在迭代结束时抑制StopIteration
的能力,有利于看到默认值。
desired_value = value_iterator.next()
请注意,在Python 3中,此方法已重命名为__next__()
。
答案 2 :(得分:2)
在为下一步分配内容之前,请使用以下内容:
real_next = next