Python String durchsuchen nach Zahl

derFREAK27

Member
Registriert
8 Mai 2012
Beiträge
267
Hallo liebe Python-Programmierer :thumbsup:.

Ich habe einen string der aus zwei Wörtern und einer Zahl besteht. Dazwischen sind jeweils Leerzeichen, also:
Code:
WORT1 WORT2 ZAHL
Ich möchte den String zerlegen und nach der Zahl suchen lassen. Wie würde ich das am Besten anstellen?

Danke schon mal für Eure Hilfe :)
 
Wenn die "Wörter" immer gleiche Zeichenzahl haben könntest du einfach die Stellen im String abfragen an denen die Zahlen stehen. Du könntest aber auch den String auf eine bestimmte Länge festlegen, dann hast du eine feste Zeichenzahl für Wort 1, Wort 2 und kannst dann ab Stelle X die zahl auslesen.
Oder du liest einfach die letzten Stellen deines String aus...

So würde ich das machen (mit meinen begrenzten Programmierkenntnissen)
 
Ich habe im Netz auf die Schnelle das hier gefunden. Der nimmt dafür die berüchtigten "regular expressions". Vielleicht kannst du dasfür dein Problem anpassen.
 
als erstes würde ich den String in eine List umwandeln

Code:
liste = string_var.split(' ')

und anschliessend, würde ich die Liste in einer Schleife einzeln testen

Code:
for i in liste:
  if i.isdigit():
    print i
 
Ich denke die Vorgehensweise von Oezix ist am Sichersten für den gegebenen Fall.
Falls bekannt wäre an welcher Stelle die Zahl steht, wäre es auch möglich den String in ein Array zu splitten und die betreffende Stelle auszulesen
(das hätte den Vorteil, dass unvorhergesehene Zahlen in den Strings nicht versehentlich mit ausgelesen werden)
 
Die Zahl steht immer nach den beiden Wörtern :)

Jou, das bringt dir aber nix wenn die Wörter nicht alle identische Länge haben. Denn sonst hast du die Zahl ja nicht immer an besagter Stelle stehen.
Du könntest zwar eine Schleife anlegen die immer die Länge des Strings liest, anschließend dann die letzten X-Stellen (wenn deine Zahlen immer gleich lang sind) aber das würde einen riesigen Verarbeitungs Overhead erzeugen.
Die Umwandlung in Arrays (eigentlich sind strings ja schon nichts anderes als ein eindimensionales Array, in manchen Sprachen lassen die sich sogar fast genauso adressieren) wird wohl die praktikabelste Variante sein.
 
das bringt dir aber nix wenn die Wörter nicht alle identische Länge haben. Denn sonst hast du die Zahl ja nicht immer an besagter Stelle stehen.
Nach einem >>string_var.split(' ')<< schon ;) ist immer die letzte Stelle der Liste

@oezix: Dass >>liste[-1]<< funktioniert kann ich irgendwie nicht ganz glauben(hab aber auch nur mittelmäßige Python Kenntnisse)
ich würde eher >>liste[len(liste)-1]<<
oder(wenn die Länge absolut fest ist) >>liste[2]<< verwenden :rolleyes:
 
Zuletzt bearbeitet:
@supertux man kann in Python die Liste auch Rückwärst durchlaufen, -1 für das letzte Element, -2 für die vorletzte Element, usw.
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben