Einzelne Ziffern in Listen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Beitragvon numerix » Sonntag 17. Februar 2008, 18:14

Nur mal so eine Lösung ohne Zeichenkette:

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]
BlackJack

Beitragvon BlackJack » Sonntag 17. Februar 2008, 18:47

Versuch das mal mit ``nr = 0``. :P

Ohne den Umweg über `str()` würde ich wahrscheinlich eine Funktion schreiben, die mit `divmod()` solange Ziffern ausrechnet, bis der Rest 0 ist.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Beitragvon numerix » Montag 18. Februar 2008, 15:32

Ohne den Umweg über `str()` würde ich wahrscheinlich eine Funktion schreiben, die mit `divmod()` solange Ziffern ausrechnet, bis der Rest 0 ist.


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.
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitragvon Markus12 » Montag 10. März 2008, 21:27

Eine noch bessere Lösung ist:

Code: Alles auswählen

nummer=raw_input('deine Kontonummer: ')
liste=list(nummer)



:P

Sowas muss man doch als Pythomatiker wissen! *g*


Viele Grüße Markus :-)
BlackJack

Beitragvon BlackJack » Montag 10. März 2008, 21:35

Der Ausgang war eine Zahl und keine Zeichenkette und das Ergebnis sollte eine Liste mit Zahlen sein und keine Liste mit Zeichenketten.
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitragvon Markus12 » Dienstag 11. März 2008, 14:47

Ok, dann entschuldigung:

Code: Alles auswählen

nummer=1234
liste=list(str(nummer))


Jetzt ist es eine Zahl...


Dass die Elemente der Liste integers sein sollen habe ich nicht bemerkt, ist aber auch nicht weiter schlimm, denn spätestens beim verarbeiten der Liste kann man einfach konvertieren, ist ja kein Akt.
Man kann es aber auch anders machen, gebe ich ja zu..

Viele Grüße
Markus :-)
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 11. März 2008, 15:21

Markus12 hat geschrieben:Ok, dann entschuldigung:

Code: Alles auswählen

nummer=1234
liste=list(str(nummer))


Jetzt ist es eine Zahl...

Ähm... nein? Es sind immer noch eine Liste mit Zeichenketten.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitragvon Markus12 » Dienstag 11. März 2008, 17:40

Ähm... ja und das ist mir ja auch klar! Warum liest du denn nicht einfach meinen Beitrag?
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitragvon Markus12 » Dienstag 11. März 2008, 17:41

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..
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 11. März 2008, 18:26

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..

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).

Code: Alles auswählen

ziffern = [int(ziffer) for ziffer in str(zahl)]
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Beitragvon numerix » Dienstag 11. März 2008, 18:30

Leonidas hat geschrieben:

Code: Alles auswählen

ziffern = [int(ziffer) for ziffer in str(zahl)]


Genau an dem Punkt waren wir schon bei Posting Nr. 4 ....
Mir scheint, die Sache ist jetzt ausreichend breitgetreten worden.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 11. März 2008, 18:42

pütone hat geschrieben:Genau an dem Punkt waren wir schon bei Posting Nr. 4 ....

Ehh, tatsächlich :oops: Naja, immerhin habe ich bewiesen, dass ich sehr vergesslich bin und dass es in Python nur einen Weg gibt, das Problem zu lösen :)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Beitragvon BlackJack » Dienstag 11. März 2008, 19:40

Genau, den in Posting Nr. 6 :P
Benutzeravatar
Hyperion
Moderator
Beiträge: 7471
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Dienstag 11. März 2008, 19:43

Wenn wir den Thread noch weiterausdehnen, werdet ihr auf Seite drei wieder diese Lösung vorschlagen :-D

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]