string.replace bestimmter Abschnitt

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
Peacemaker957
User
Beiträge: 3
Registriert: Dienstag 12. April 2011, 18:24

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
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
Peacemaker957
User
Beiträge: 3
Registriert: Dienstag 12. April 2011, 18:24

Vielen vielen Dank! Die Antwort kam ja schnell! Und das mit string als name war jetzt nur für den test^^
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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!
Peacemaker957
User
Beiträge: 3
Registriert: Dienstag 12. April 2011, 18:24

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^^
Antworten