def countdown(val, count):
curr = 0
while True:
now = (yield curr)
if curr > 0:
curr -= 1
if now == val:
curr = count
values = [1, 2, 3, 'foo', 'a', 'b', 6, 7, 'foo', 'x', 'y']
c = countdown('foo', 3)
c.next()
print [x for x in values if not c.send(x)]
def iterskip(iterator, test, n):
"""Iterate skipping values matching test, and n following values"""
iterator = iter(iterator)
while 1:
value = next(iterator)
if test(value):
for dummy in range(n):
next(iterator)
else:
yield value
def is_foo(value):
return value == 'foo'
print list(iterskip(values, is_foo, 2))
现在,一个协同程序解决方案。在
只是切片删除。在
嗯,发电机怎么样?在
相关问题 更多 >
编程相关推荐