Seite 1 von 1

string.replace bestimmter Abschnitt

Verfasst: Dienstag 12. April 2011, 18:58
von Peacemaker957
Hallo liebe Foren-Gemeinde,

Ich habe mir die Regeln durchgelesen und habe mich mit der SuFu versucht, doch ich habe das Problem das ich nichtmal genau weiß wonach ich suchen kann. Nun habe ich mich extra für dieses Problem hier angemeldet :mrgreen:
Also ich poste hier mal einen Beispielcode:

Code: Alles auswählen

string = "Dies ist ein Test. Dies ist ein Test"
string = string.replace(string[28:31], "kein")
nun würde der string heißen:

Code: Alles auswählen

Dies ist kein Test. Dies ist kein Test
ich möchte aber erreichen, dass genau der Bereich 28:31 ersetzt wird, also nur das zweite "ein". Leider ist mir das nicht gelungen. :K
Ich hoffe das Problem ist lösbar,

mfg Peacemaker

Re: string.replace bestimmter Abschnitt

Verfasst: Dienstag 12. April 2011, 20:02
von cofi

Code: Alles auswählen

In [1]: s = "Dies ist ein Test. Dies ist ein Test"

In [2]: s = s[:28] + "kein" + s[31:]

In [3]: s
Out[3]: 'Dies ist ein Test. Dies ist kein Test'
`replace` funktioniert anders als du denkst: http://docs.python.org/library/stdtypes ... tr.replace

Oh und `string` ist ein denkbar schlechter Name, da es das `string`-Modul gibt inklusive einer `replace` Funktion.

Re: string.replace bestimmter Abschnitt

Verfasst: Dienstag 12. April 2011, 20:15
von Peacemaker957
Vielen vielen Dank! Die Antwort kam ja schnell! Und das mit string als name war jetzt nur für den test^^

Re: string.replace bestimmter Abschnitt

Verfasst: Dienstag 12. April 2011, 20:39
von cofi
Wobei man evtl noch `find` und `rfind` nennen sollte .. die eignen sich besser als feste Grenzen. Eine Alternative waere noch der Umweg ueber listen:

Code: Alles auswählen

In [4]: l = list(s)

In [5]: l[28:31] = list("kein")

In [6]: ''.join(l)
Out[6]: 'Dies ist ein Test. Dies ist kein Test'
P.S. Willkommen im Forum!

Re: string.replace bestimmter Abschnitt

Verfasst: Dienstag 12. April 2011, 20:48
von Peacemaker957
in meinem script/programm habe ich es auch mit find und rfind gemacht, ich wollte nur nicht zuviel unnötigen code posten.
Und Danke, dass ich Willkommen bin^^