【发布时间】:2016-04-28 16:41:10
【问题描述】:
def yield_and_skip(iterable,skip):
for i in iterable:
print(skip(i))
for x in range(skip(i)):
pass
yield i
我正在定义一个名为 skip_yield 的函数,它从可迭代对象中生成一个值,但随后它会跳过在刚刚生成的值上调用函数参数时指定的值的数量。它需要 2 个参数:skip 是一个小函数。 但是,如果我尝试这样做:
print(''.join([v for v in yield_and_skip('abbabxcabbcaccabb',lambda x : {'a':1,'b':2,'c':3}.get(x,0))]))
它给了我:
abbabcabbcaccabb
但它应该给我:
abxccab
有什么想法吗?
【问题讨论】:
-
这里有一个空主体 (
pass) 的循环有什么意义? -
能分享一下yield_and_skip函数吗?
-
请不要污蔑您的问题。
标签: python iterator generator skip