Seite 1 von 1

rfind mit Anzahl???

Verfasst: Samstag 29. Januar 2005, 20:19
von Gast
Hallo allerseits
ich versuche gerade folgendes:

der String:
str = abcde/efgh/ijkl/mnop
sollte zu
abcde/efgh
konvertiert werden.

ich wollte es so machen:
erg = string.rfind(str, '/',2)

habe aber festgestellt dass es völlig egal ist ob man eine 2 oder eine 3 oder eine 4 für rfind als optionalen Parameter hinten angibt. Es nimmt immer default 1.

Gibt es denn keinen Aufruf mit diesem optionalen Paramter??

Verfasst: Samstag 29. Januar 2005, 20:26
von Leonidas
Ich hätte es ja so gemacht:

Code: Alles auswählen

st = "abcde/efgh/ijkl/mnop"
# nicht str, da das ein builtin ist
st.rsplit('/', 2)

Verfasst: Samstag 29. Januar 2005, 20:41
von Gast
Danke fürdeine schnelle Antwort Leonidas...

leider kann ich deine Lösung nicht nachmachen..
bei mir kommt die Fehlermeldung:

Code: Alles auswählen

>>> st = "ab/cd/ef/gh"
>>> st.rsplit('/',2)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: 'str' object has no attribute 'rsplit'
Du meinet so splitten und dann aus der split-liste den substring rusholen???

Edit (Leonidas): Code in Python Tags gesetzt

Verfasst: Samstag 29. Januar 2005, 20:51
von XT@ngel
Welche Python Version hast Du?
evtl. musst du schreiben

Code: Alles auswählen

import string 
st = "abcde/efgh/ijkl/mnop"
new_st = string.rsplit(st, '/', 2)
Edit.
Zur kurzen Erklärung wieso:
http://docs.python.org/lib/node107.html
Ich glaub seit Version 2.2 sind alle im Modul string enthaltene Funktionen, Methoden des Typs string.
Und rsplit gibts sowieso erst ab Version 2.4

Verfasst: Samstag 29. Januar 2005, 20:52
von mawe
Hi!

Hier eine ganz einfache Lösung :wink:

Code: Alles auswählen

s = 'abcde/efgh/ijkl/mnop'
'/'.join(s.split('/')[0:2])
Gruß, mawe

Verfasst: Samstag 29. Januar 2005, 21:01
von Gast
Danke euch:
@ Leonidas...
ja es liegt an meiner Version.
BIn erst bei 2.3.4 :?

Mit der ./. join Lösung gehts auf alle Fälle ;)

Danke

Verfasst: Samstag 29. Januar 2005, 21:07
von Leonidas
Anonymous hat geschrieben:ja es liegt an meiner Version.
BIn erst bei 2.3.4 :?
Updaten, marsch, marsch! *g*
mawe hat geschrieben:Hier eine ganz einfache Lösung :wink:
Vor allem einfach :lol:
Damit bist du fast schon bei meinen lambda/LC Konstrukten, hehe.