Wert in Dict waehrend der Laufzeit aendern?

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
benjamin15
User
Beiträge: 2
Registriert: Montag 22. Juni 2015, 09:15

Hallo zusammen,

ich würde gerne nach einem String im Value eines Dictonarys suchen und wenn dieser gefunden wurde, ihn ändern.
Verwendet wird Python in der Version 2.7.

Code: Alles auswählen

#!/usr/bin/env python
import re

myDict = {'key1':'val_2013_06', 'key2':'val_2014_05'}

muster = re.compile('2013')
update = '2015'

for key, value in myDict.items():
	if muster.search(value):
		print key, value
Die Suche an sich funktioniert schon mal. Nun stehe ich aber gerade auf dem Schlauch, wie man nur das Suchmuster in 'val_2013_06' abändern kann,
damit das Value am Schluss den Inhalt von update enthält. So sollte es aussehen: 'val_2015_06'

Danke für die Unterstützung.
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Warum mit regulären Ausdrücken? Das mach die Sache doch unnötig kompliziert.

Code: Alles auswählen

>>> a = 'val_2013_06'
>>> "2013" in a
True
>>> b = a.replace("2013", "2015")
>>> b
'val_2015_06'
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Willkommen im Forum und zu Python!

Nun was noch fehlt ist das update:

Code: Alles auswählen

myDict = {'key1':'val_2013_06', 'key2':'val_2014_05'}

for key, value in myDict.items():
        myDict[key] = value.replace('2013', '2015')
benjamin15
User
Beiträge: 2
Registriert: Montag 22. Juni 2015, 09:15

Hallo und vielen Dank für die Antworten.
Mit einem Mix aus beiden, hat es jetzt funktioniert :D
Antworten