Seite 1 von 1

Wert in Dict waehrend der Laufzeit aendern?

Verfasst: Montag 22. Juni 2015, 09:38
von benjamin15
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.

Re: Wert in Dict waehrend der Laufzeit aendern?

Verfasst: Montag 22. Juni 2015, 10:16
von sparrow
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'

Re: Wert in Dict waehrend der Laufzeit aendern?

Verfasst: Montag 22. Juni 2015, 10:54
von cofi
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')

Re: Wert in Dict waehrend der Laufzeit aendern?

Verfasst: Montag 22. Juni 2015, 17:43
von benjamin15
Hallo und vielen Dank für die Antworten.
Mit einem Mix aus beiden, hat es jetzt funktioniert :D