107 votes

Comment diviser un entier en un tableau de chiffres ?

Mon entrée entière est supposer 12345, je veux la scinder et la mettre dans un tableau comme 1, 2, 3, 4, 5.
Comment serai-je en mesure de le faire ?

176voto

luc Points 13564
>>> [int(i) for i in str(12345)]

[1, 2, 3, 4, 5]

106voto

YOU Points 44812

renvoie le tableau sous forme de chaîne

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

tableau de retour en tant qu'entier

>>> map(int,str(12345))
[1, 2, 3, 4, 5]

10voto

nd. Points 4738
[int(i) for i in str(number)]

ou, si vous ne souhaitez pas utiliser une compréhension de liste ou si vous souhaitez 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

3voto

fabrizioM Points 11498

comme le dit @nd mais en utilisant la fonction intégrée de int pour convertir vers 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'objectif final mais jetez un œil aussi à l'intérieur du module décimal de python pour faire des choses comme

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X