« [ビッグデータ時代のデータ分析] ビッグデータとは? | メイン | [DaReCo] DaReCoというウエブアプリケーションを作ってみました »

[Python] pythonで10進数からn進数に基数変換

pythonで10進数から36進数に基数変換しなければならなかったのでGoogle先生に

「python base36」

で、教えてもらいました.

Python base 36 encoding

いちばん最後のでよいのかな

import string, math

int2base = lambda a, b: ''.join(
    [(string.digits + string.lowercase + string.uppercase)[(a/b**i)%b]
     for i in xrange(int(math.log(a, b)), -1, -1)]
    )

num = 1412823931503067241
test = int2base(num, 36)
test2 = int(test, 36)
print test2 == num

int2baseという関数がそれです.
int2base(x, base)というインターフェースになっています.

確認

>>> int2base(36, 36)
'10'
>>> int2base(1, 36)
'1'
>>> int2base(2, 36)
'2'
>>> int2base(36*36, 36)
'100'

トラックバック

このエントリーのトラックバックURL:
http://blogs.topaz.ne.jp/mt/MT-3.37-ja/mt-tb.cgi/278