Lambda question

jyoung79 at kc.rr.com jyoung79 at kc.rr.com
Mon Jun 6 09:42:15 EDT 2011


>>>>> f = lambda x, n, acc=[]: f(x[n:], n, acc+[(x[:n])]) if x else acc

> Packing tail recursion into one line is bad for both understanding and 
> refactoring. Use better names and a docstring gives
> 
> def group(seq, n):
>    'Yield from seq successive disjoint slices of length n plus the 
> remainder'
>    for i in range(0,len(seq), n):
>      yield seq[i:i+]
> 
> -- 
> Terry Jan Reedy

Thank you all very much for this incredible help!  The original code 
now makes sense, and I was thrilled to see better and more efficient 
ways of doing this.  Thanks for taking the time to share your 
thoughts as well as the excellent detail everyone shared…  I really 
appreciate it!

Jay



More information about the Python-list mailing list