What is the "functional" way of doing this?

James Stroud jstroud at mbi.ucla.edu
Mon Jul 30 21:13:58 EDT 2007


James Stroud wrote:

> py> f = lambda n, r=None: f(n/26, (r if r else [])) + [n%26] if n/26 
> else [n%26]
> py> f(300000)
> [17, 1, 20, 12]
> py> f(30000)
> [1, 18, 9, 22]
> py> f(3000)
> [4, 11, 10]
> py> f(1000)
> [1, 12, 12]
> 
> 

Oops, those are backwards. Should be:

f = lambda n, r=None: [n%26] + f(n/26, (r if r else [])) if n/26 else [n%26]

-- 
James Stroud
UCLA-DOE Institute for Genomics and Proteomics
Box 951570
Los Angeles, CA 90095

http://www.jamesstroud.com/



More information about the Python-list mailing list