Division d’un entier en Python?

Mon entrée entière est supposée 12345 , je veux diviser et la mettre dans un tableau comme 1, 2, 3, 4, 5 . Comment vais-je pouvoir le faire?

 >>> [int(i) for i in str(12345)] [1, 2, 3, 4, 5] 

retourner le tableau sous forme de chaîne

 >>> list(str(12345)) ['1', '2', '3', '4', '5'] 

retourner le tableau sous forme d’entier

 >>> map(int,str(12345)) [1, 2, 3, 4, 5] 
 [int(i) for i in str(number)] 

ou, si vous ne voulez pas utiliser une compréhension de liste ou que vous voulez utiliser une base différente de 10

 from __future__ import division # for compatibility of // between Python 2 and 3 def digits(number, base=10): assert number >= 0 if number == 0: return [0] l = [] while number > 0: l.append(number % base) number = number // base return l 

comme @nd dit, mais en utilisant la fonction intégrée de int pour convertir en une base différente

 >>> [ int(i,16) for i in '0123456789ABCDEF' ] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] >>> [int(i,2) for i in "100 010 110 111".split()] [4, 2, 6, 7] 

Je ne sais pas quel est l’objective final, mais jetez également un coup d’oeil à l’intérieur du module décimal de python pour faire des choses comme

 >>> Decimal('3.1415926535') + Decimal('2.7182818285') Decimal('5.85987') 

Les chaînes sont aussi itérables que les tableaux, convertissez-les simplement en chaîne:

 str(12345) 

Fractionner un seul numéro à ses chiffres (comme tous ont répondu):

 >>> [int(i) for i in str(12345)] [1, 2, 3, 4, 5] 

Mais, pour obtenir des chiffres à partir d’une liste de numéros:

 >>> [int(d) for d in ''.join(str(x) for x in [12, 34, 5])] [1, 2, 3, 4, 5] 

Donc, si vous pouvez faire ce qui précède, vous voulez savoir plus efficacement.

Selon les réponses précédentes, les chaînes sont itérables, donc si vous avez besoin d’une liste de vos chiffres, vous pouvez l’append une par une en utilisant:

 digits = [] digits += str(12345)