python で 数値を桁別に取得するには


pythonで数値を桁別に取得したいです。  
152という数字があったら、num[0]=1 num[1]=5 num[2]=2といった形にしたいです。

int(math.log10(num) + 1))で桁数を取得して、num[0]=152/100
…として求めていくのは考えつきますが、よりスマートにやる方法があったら知りたいです。

宜しくお願いします。




スマートに、というより基本的な数値の10進変換をpythonで書くとこうなる言うことで。

[code]

    num = []
    n = 152
    while n != 0:
      num.append(n % 10)
      n /= 10
    num.reverse()
    
    num
    ->[1, 5, 2]
    
[/code]

一度文字列に変換するなんてのがありなら、こんな感じでも書けますね。

[code]

    n = 152
    num = map(int, str(n))
    
[/code]

(追記)  
前半のコードはn > 0, 後半のコードはn >= 0が動作条件ですね。整数は大前提としています。




スマートに、というより基本的な数値の10進変換をpythonで書くとこうなる言うことで。

[code]

    num = []
    n = 152
    while n != 0:
      num.append(n % 10)
      n /= 10
    num.reverse()
    
    num
    ->[1, 5, 2]
    
[/code]

一度文字列に変換するなんてのがありなら、こんな感じでも書けますね。

[code]

    n = 152
    num = map(int, str(n))
    
[/code]

(追記)  
前半のコードはn > 0, 後半のコードはn >= 0が動作条件ですね。整数は大前提としています。

