Code: Alles auswählen
import math
nr = 494789823 # Beispiel
nrliste = [(nr/10**k)%10 for k in range(int(math.log(nr,10)+1))][::-1]
Code: Alles auswählen
import math
nr = 494789823 # Beispiel
nrliste = [(nr/10**k)%10 for k in range(int(math.log(nr,10)+1))][::-1]
So (ähnlich) würde ich es bei einem anständigen Programm auch machen. Ich hatte mir aber als Ziel gesetzt, es mit List Comprehension in einer Zeile zu schaffen - das hat dann ja auch geklappt.Ohne den Umweg über `str()` würde ich wahrscheinlich eine Funktion schreiben, die mit `divmod()` solange Ziffern ausrechnet, bis der Rest 0 ist.
Code: Alles auswählen
nummer=raw_input('deine Kontonummer: ')
liste=list(nummer)
Code: Alles auswählen
nummer=1234
liste=list(str(nummer))
Ähm... nein? Es sind immer noch eine Liste mit Zeichenketten.Markus12 hat geschrieben:Ok, dann entschuldigung:
Jetzt ist es eine Zahl...Code: Alles auswählen
nummer=1234 liste=list(str(nummer))
Weil es einfacher ist die Struktur sofort richtig herzustellen, statt erstmal Strings zu haben und sie dann irgendwo herumzukonvertieren (oder es zu vergessen und dann im unpassendsten Moment auf die Nase zu fliegen).Markus12 hat geschrieben:Ich meinte damit, dass jetzt die Eingabe "eine Zahl ist".
dass die Ausgabe weiterhin eine Liste mit Elementen ist, die Strings sind, ist mir bewusst. Aber wie schon gesagt, einfach konvertieren, wenn man die Listenelemente weiterverarbeitet. Denn ich glaube nicht, dass die Liste gebraucht wird, um sie so auszugeben wahrscheinlich will sie die Liste auf etwas überprüfen oder soetwas in der Art..
Code: Alles auswählen
ziffern = [int(ziffer) for ziffer in str(zahl)]
Genau an dem Punkt waren wir schon bei Posting Nr. 4 ....Leonidas hat geschrieben:Code: Alles auswählen
ziffern = [int(ziffer) for ziffer in str(zahl)]
Ehh, tatsächlich Naja, immerhin habe ich bewiesen, dass ich sehr vergesslich bin und dass es in Python nur einen Weg gibt, das Problem zu lösenpütone hat geschrieben:Genau an dem Punkt waren wir schon bei Posting Nr. 4 ....
Code: Alles auswählen
sum((n * 10**i) for i, n in enumerate(reversed([1, 2, 3])))