2009-12-15 26 views

Odpowiedz

61
>>> [int(i) for i in str(12345)] 

[1, 2, 3, 4, 5] 
50

Tablica powrotu jako ciąg

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

Tablica RETURN całkowitej

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

+1 dla funkcji mapy – Ikke

+4

W języku Python3 to byłaby 'list (mapa (int, str (12345))' –

1

łańcuchy są tak iterowalny jako tablice, więc po prostu skonwertować do łańcucha:

str(12345) 
+0

OP chce 'int's not' strings – jamylak

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

lub, jeśli nie chcesz używać wyrażeń listowych lub chcesz użyć bazę inną od 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 
+0

Dobra rozmowa, to było to, czym byłem o pisaniu :) – Russell

+0

@ możesz umieścić bazę numeru wewnątrz int jak int (i, 2) dla binarnego zobacz mój wpis – fabrizioM

2

jak @nd mówi, ale przy użyciu wbudowanej funkcji int do konwersji do innej bazy

>>> [ int(i,16) for i in 'ABCDEF' ] 
[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] 

nie wiem, co jest ostatecznym celem, ale również zapoznać się również wewnątrz dziesiętnych moduł Pythona za robienie rzeczy jak

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

"Dziesiętny' jest bezużyteczny dla tego pytania – jamylak

-1

według poprzednich odpowiedzi, łańcuchy są iterable, więc jeśli potrzebujesz listę swoich cyfr można go dołączyć jeden po drugim używając:

digits = [] 
digits += str(12345) 
0

Dzielenie jeden numer do jego cyfry (jak odbierane przez wszystkich) :

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

jednak, aby uzyskać cyfry z listy numerów:

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

Więc chciałbym wiedzieć, czy możemy zrobić wyżej, bardziej efektywnie.

Powiązane problemy