的问题是使用iterator找到从列表中NUM谁比左右返回列表发帖越大NUM比左右
例如,选择NUMS更大([0,1,0 ,2,0,3,0,4,0])返回[1,2,3,4]
我的第一次尝试是
def select(iterable):
answer = []
it = iter(iterable)
try:
v2 = next(it)
while True:
v1,v2= v2,next(it)
if v2>v1 and v2>next(it):
answer.append(v2)
except StopIteration:
pass
return answer
此代码失败。 我认为在while循环中的下一个(它)将是相同的迭代器,但下一个()仍然是代码中的下一个。
然后我将代码更改为下面的一个,它的工作原理。
try:
v1,v2,v3 = next(it),next(it),next(it)
while True:
if v2>v1 and v2>v3:
answer.append(v2)
v1,v2,v3 = v2,v3,next(it)
except StopIteration:
pass
有人可以解释这里发生了什么吗?
你可以这样做很容易使用枚举 – 2014-11-05 21:49:32