Jean-Paul Calderone wrote:
> Christoph Zwerschke <[EMAIL PROTECTED]> wrote:
>>
>> BTW: What is the shortest way to get the binary representation of a
>> number in Python? Is there really not something like itoa() anywhere in
>> the standard libs?
> 
> I'm somewhat partial to this implementation:
> 
> binary = lambda i,c = (lambda i,c: i and (c(i>>1, c) + str(i&1)) or ''): 
> c(i,c)

Took me some time to understand how it works. If you make a full 
featured itoa out of it, it becomes even more horrible:

itoa = lambda i, radix = 10, c = (lambda i, radix, c: i and (c(i/radix, 
radix, c) + (i % radix < 10 and str(i % radix) or chr(i % radix - 10 + 
ord('A')))) or ''): c(i, radix, c)

 > Fortunately for you, I guess, it looks like Python 2.5 will have
 > either a bin() builtin or a '%b' format character or something like
 > that in order to do this.

Nice. But still no itoa()? There are some use cases for radix 26 and 
radix 36 conversion (e.g. converting long numbers efficiently to 
strings, see also http://en.wikipedia.org/wiki/Base_36). And it would be 
the inverse function of int() which also can handle up to radix 36.

-- Christoph



-- Christoph
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to