HOWTO · Python
Teilen Sie ganze Zahlen in Ziffern in Python
Dieses Tutorial zeigt, wie man Integer in Ziffern in Python aufspaltet
Auf dieser Seite
Um eine ganze Zahl in eine Liste ihrer Ziffern aufzuteilen, wandle sie mit str() in eine Zeichenfolge um und anschließend jedes Zeichen mit int() wieder in eine ganze Zahl. So erhältst du die Ziffern von links nach rechts. Behandle bei negativen Zahlen das Vorzeichen separat und teile den Absolutwert auf; stelle Null als [0] dar. Verwende ganzzahlige Arithmetik, wenn eine Umwandlung in Text ungeeignet ist, oder map() und str.split(), wenn die Eingabe bereits eine durch Leerraum getrennte Zeichenfolge mit Ziffernwerten ist.
Eine List Comprehension verwenden, um eine ganze Zahl in Python in Ziffern aufzuteilen
Eine List Comprehension ist die direkteste Wahl, wenn die Eingabe eine ganze Zahl ist und das Ergebnis eine Liste ihrer Ziffern in der üblichen Reihenfolge von links nach rechts sein soll. str() macht aus jeder Dezimalziffer ein einzelnes Zeichen, und int() wandelt jedes Zeichen in eine ganze Zahl um.
num = 13579
digits = [int(character) for character in str(num)]
print(digits)
Der Code stellt die Ziffern von 13579 als Elemente vom Typ ganze Zahl dar. Für Null gibt derselbe Ausdruck [0] zurück. Teile bei einer negativen Eingabe abs(num) auf und speichere das Vorzeichen separat, wenn die Anwendung es benötigt. Eine ganze Zahl bewahrt keine führenden Nullen; wenn diese wichtig sind, verwende stattdessen den ursprünglichen Text.
Ganzzahlige Arithmetik verwenden, um eine ganze Zahl in Python in Ziffern aufzuteilen
Um den Wert nicht in Text umzuwandeln, verwende wiederholt divmod() mit 10. Jeder Rest ist die nächste Ziffer von rechts; kehre die gesammelten Ziffern daher am Ende um. Behandle Null ausdrücklich, da die Schleife sonst keine Ziffern sammelt. Verwende bei negativen Eingaben den Absolutwert und speichere das Vorzeichen separat.
num = -13579
sign = -1 if num < 0 else 1
remaining = abs(num)
digits = []
if remaining == 0:
digits.append(0)
else:
while remaining:
remaining, digit = divmod(remaining, 10)
digits.append(digit)
digits.reverse()
print(sign, digits)
Dieser arithmetische Ansatz ist nützlich, wenn die Umwandlung rein numerisch bleiben muss. Die Liste ist weiterhin von der höchstwertigen zur niedrigstwertigen Ziffer geordnet; das Vorzeichen ist von den Ziffernwerten getrennt.
map() und str.split() verwenden, um durch Leerzeichen getrennte Ziffern in Python in ganze Zahlen umzuwandeln
Verwende diese Methode, wenn eine Zeichenfolge bereits einzelne Zifferntokens enthält, zum Beispiel eine aus einer Zeile eingelesene Eingabe. str.split() trennt standardmäßig an Leerraum, und map() wendet int() auf jedes Token an. Eine gewöhnliche ganze Zahl wird dadurch nicht in ihre einzelnen Ziffern aufgeteilt.
text = "1 3 5 7 9"
digits = list(map(int, text.split()))
print(digits)
Diese Schreibweise ist praktisch für durch Leerraum getrennte Werte. Wenn die Quelle Kommas oder ein anderes Trennzeichen verwendet, übergib dieses an split() und stelle sicher, dass jedes resultierende Token eine gültige Ganzzahldarstellung ist.
Eine for-Schleife verwenden, um eine Ziffernfolge in Python in ganze Zahlen aufzuteilen
Wenn die Quelle eine Ziffernfolge ist und sich eine explizite Schleife leichter anpassen lässt, schneide jeweils ein Zeichen aus und wandle diesen Ausschnitt mit int() um. Schrittweite und Ausschnittbreite betragen beide 1, sodass jede Iteration eine Dezimalziffer verarbeitet.
digit_text = "13579"
digits = []
for index in range(0, len(digit_text), 1):
digits.append(int(digit_text[index:index + 1]))
print(digits)
Die Schleife erstellt dieselbe Liste von links nach rechts wie die List Comprehension und macht dabei den Umwandlungsschritt sichtbar. Verwende die List Comprehension für eine kompakte Umwandlung einer ganzen Zahl in Ziffern, ganzzahlige Arithmetik, wenn du die Umwandlung in Text vermeiden möchtest, map() mit str.split() für bereits getrennte Tokens und eine Schleife, wenn du die Verarbeitung einzelner Zeichen anpassen musst. Behandle bei Text, der ein Vorzeichen oder Trennzeichen enthalten kann, diese Zeichen, bevor du die Ziffernausschnitte umwandelst.