我发现自己正在使用这两个自定义生成器,并在想“一定有一个itertools函数或其他什么已经做到了这一点!但没找到。我错过什么了吗?谢谢!你知道吗
def gothru(iters):
for i in iters:
for j in i:
yield j
def overnover(fn,startval):
val = startval
while True:
val = fn(val)
yield val
编辑:我后来想到了如何使用overnover
来生成斐波那契序列,我意识到需要对其进行泛化,以允许函数有多个参数
def overnover(fn,*args):
while True:
args = fn(*args)
return args
然后你可以做:
fibInfo = overnover(lambda x,y: (x+y, x), 1, 1)
->;(2,1)。。。(3, 2) ... (5, 3) ... (8, 5) ... 然后:
fib = imap(lambda x:x[0], fibInfo)
->;2。。。三。。。5 ... 8 ... 你知道吗
谢谢你们!你知道吗
第一个是^{} 。你知道吗
最接近} :
overnover
的是^{这是函数的一个特例,它输出序列号。
count
也需要step
,所以你可以把它推广到以下是
overnover
的一个版本,它允许您将值发送到序列中:相关问题 更多 >
编程相关推荐