def yield_and_skip(iterable,skip):
for i in iterable:
print(skip(i))
for x in range(skip(i)):
pass
yield i
我定义了一个称为skip_yield的函数,它从iterable产生一个值,然后跳过刚刚生成的值上调用函数参数时指定的值的数量。它需要2个参数:skip是一个小函数。 但是,如果我尝试这样做:python iterator skip_func
print(''.join([v for v in yield_and_skip('abbabxcabbcaccabb',lambda x : {'a':1,'b':2,'c':3}.get(x,0))]))
它给了我:
abbabcabbcaccabb
,但它应该给我:
abxccab
任何想法?
什么是具有空体('pass')的循环在这里的呢? – GingerPlusPlus
你能分享yield_and_skip函数吗? – pmaniyan
请不要污蔑你的问题。 – vaultah