tutorial - Dividir entero en Python?




nltk machine learning (5)

Mi entrada entera es 12345 , quiero dividirla y ponerla en una matriz como 1, 2, 3, 4, 5 . ¿Cómo podré hacerlo?

https://code.i-harness.com


Dividir un solo número en sus dígitos (como respondieron todos):

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

Pero, para obtener los dígitos de una lista de números:

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

Así que me gustaría saber, si podemos hacer lo anterior, de manera más eficiente.


Las cadenas son tan iterables como las matrices, así que simplemente conviértalo en una cadena:

str(12345)

de acuerdo con las respuestas anteriores, las cadenas son iterables, por lo que si necesita una lista de sus dígitos, puede agregarla una por una usando:

digits = []
digits += str(12345)

return array como cadena

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

return array como entero

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

[int(i) for i in str(number)]

o, si no desea usar una lista de comprensión o si desea usar una base diferente 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




python