Teilen Sie in Python eine dreistellige Ganzzahl in eine Drei-Punkte-Liste jeder Ziffer auf

8

Ich bin neu in Python. Ich möchte eine dreistellige Ganzzahl wie 634 verwenden und sie so aufteilen, dass sie zu einer Liste mit drei Elementen wird, d. H.

digits = [ 6, 3, 4 ]

Jede Hilfe in diesem würde sehr geschätzt werden.

    
Martin Bean 02.09.2011, 10:17
quelle

7 Antworten

20

Sie können die Zahl in eine Zeichenkette umwandeln, dann über die Zeichenkette iterieren und jedes Zeichen zurück in eine Ganzzahl konvertieren:

%Vor%

Oder, wie @eph zu Recht darauf hinweist, verwenden Sie map () :

%Vor%     
Frédéric Hamidi 02.09.2011, 10:20
quelle
8

Die Verwendung von str() ist ein bisschen faul. Ziemlich viel langsamer als mit Mathematik. Die Verwendung einer while -Schleife wäre noch schneller

%Vor%

Wenn Sie wissen, dass es genau drei Ziffern ist, können Sie es viel schneller machen

%Vor%     
John La Rooy 02.09.2011 11:10
quelle
5

In String umwandeln, String als Liste behandeln und zurück in int:

konvertieren %Vor%     
KillianDS 02.09.2011 10:21
quelle
3

Alternativ können Sie dies mit dem Dezimal-Modul tun:

%Vor%

... das funktioniert auch mit reellen Zahlen ...

%Vor%     
richardw 02.09.2011 11:03
quelle
1

So:

%Vor%

Dies verwandelt das int in eine Zeichenkette, zerlegt die Zeichen in eine Liste und bildet die Liste wieder in ints ab (unter Verwendung eines Listenverständnisses).

    
Keith 02.09.2011 10:21
quelle
1

Um dies ohne Umwandlung in eine Zeichenfolge zu tun (und ohne zu mogeln, indem Sie log verwenden, um zu sehen, wie viele Ziffern es gibt), verwenden Sie wiederholte Aufrufe von divmod:

%Vor%     
PaulMcG 02.09.2011 12:34
quelle
0

Mit dieser Funktion können Sie eine beliebige Zahl in eine Liste von Dezimalziffern umwandeln:

%Vor%

Oder dieses, um das Gegenteil zu tun:

%Vor%     
Enrique Pérez Herrero 08.04.2015 21:39
quelle

Tags und Links