subtring Teilstring ausgeben

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.
Antworten
py_lo
User
Beiträge: 60
Registriert: Freitag 20. März 2009, 09:12

Hallo,

irgendwie hab ich da ein kleines Verständnisproblem was das ermitteln
eines Teilstrings angeht, vor allem wenn die Position und Länge der
einzelnen Strings nicht fest bestimmt ist.

Also ich habe da z.B. konkret folgenden String:
time = '138 9665 3.60 252.47'

Dieser beinhaltet Frames und Zeitangaben, welche in der Länge variieren - getrennt duch ein Leerzeichen.

In einer anderen Sprache bekomme ich das einfach mit:
Print SUBSTR$(time$,2," ")
>> 3.60
hin.

Ist das denn so kompliziert in Python? Oder hab ich da was übersehen
:?
theliquidwave
User
Beiträge: 221
Registriert: Sonntag 1. Juni 2008, 09:08

Hi.
Das ist einfach mit der str.split(char)-Methode zu lösen:

Code: Alles auswählen

time = "138 9665 3.60 252.47"
parts = time.split(" ")

# ergibt 9665
print parts[1]

for part in parts:
    print part
~ Chris
Grüßle.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hallo,

statt zu sagen "in einer anderen Sprache", solltest du besser noch dazu sagen in welcher Sprache. Um am besten sagst du, was für ein Ergebnis du haben willst, ich kann im Moment nur raten:

Code: Alles auswählen

>>> '138 9665 3.60 252.47'.split(" ")
['138', '9665', '3.60', '252.47']
>>> '138 9665 3.60 252.47'.split(" ", 2)
['138', '9665', '3.60 252.47']
Das Leben ist wie ein Tennisball.
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

Noch ergänzend: Wenn man am Leerzeichen splitten will, kann man split einfach ohne Parameter benutzen.

Code: Alles auswählen

time = "138 9665 3.60 252.47"
print time.split()[2]
py_lo
User
Beiträge: 60
Registriert: Freitag 20. März 2009, 09:12

Yup, super vielen Dank das war's! (War ja doch ganz einfach :D )

@EyDu: Sprache war "xprofan", recht unbekannt dachte es würd nicht gerade weiterhelfen.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Code: Alles auswählen

def substr_dollar(s, i, x):
    return s.split(x)[i]
    
time_dollar = '138 9665 3.60 252.47' 
print substr_dollar(time_dollar, 2, " ")
Stefan
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

sma, da sind viel zu wenige Dollarzeichen. Wenn du das schon portieren willst, solldest du zumindest eine Menge Dollarzeichen in die Kommentare reinschreiben dass das simple xprofan-Feeling zumindestens halbwegs rüberkommt ;)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
py_lo
User
Beiträge: 60
Registriert: Freitag 20. März 2009, 09:12

Wusste ich hätts nicht erwähnen sollen...
Antworten