"number-in-base" ``oneliner''
From: Alex Martelli (aleaxit_at_yahoo.com)
Date: 10/29/04
- Next message: Jeremy Bowers: "Re: Multiple XML-RPC calls over the same connection?"
- Previous message: Josiah Carlson: "Re: Open Source License Question"
- Next in thread: exarkun_at_divmod.com: "Re: "number-in-base" ``oneliner''"
- Reply: exarkun_at_divmod.com: "Re: "number-in-base" ``oneliner''"
- Reply: Bengt Richter: "Re: "number-in-base" ``oneliner''"
- Reply: Bengt Richter: "Re: "number-in-base" ``oneliner''"
- Reply: Bengt Richter: "Re: "number-in-base" ``oneliner''"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Fri, 29 Oct 2004 23:58:47 +0200
I hesitate a bit to post this, but... on the Italian Python NG, somebody
was asking whether there was any way to convert an integer number x into
a string which represents it in an arbitrary base N (given a sequence
with a len of N that gives the digits to use) as "a single expression".
I haven't found a really general way, much less a clear one, but, the
best I have so far is...:
def number_in_base(x, N, digits, maxlen=99):
return '-'[x>=0:] + (
(x and ''.join([digits[k%N] for i in range(maxlen)
for k in [abs(x)//N**i] if k>0])[::-1]
) or digits[0])
Besides the lack of clarity, the obvious defect of this approach is that
darned 'maxlen' parameter -- but then, since I can have only a 'for',
not a 'while', in a list comprehension or generator expression, and I
don't think recursion qualifies as 'a single expression'...:-(
Anyway, improvements and suggestions welcome, thanks!
Alex
- Next message: Jeremy Bowers: "Re: Multiple XML-RPC calls over the same connection?"
- Previous message: Josiah Carlson: "Re: Open Source License Question"
- Next in thread: exarkun_at_divmod.com: "Re: "number-in-base" ``oneliner''"
- Reply: exarkun_at_divmod.com: "Re: "number-in-base" ``oneliner''"
- Reply: Bengt Richter: "Re: "number-in-base" ``oneliner''"
- Reply: Bengt Richter: "Re: "number-in-base" ``oneliner''"
- Reply: Bengt Richter: "Re: "number-in-base" ``oneliner''"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]