@Chiller Royal: Werte werden normalerweise gar nicht geändert. Wenn Du eine Liste mit geänderten Werten haben willst, erzeugst Du eine neue Liste:
Code: Alles auswählen
>>> values = [1, 2, 3, 4]
>>> new_values = [4 if value == 3 else value for value in values]
>>> new_values
[1, 2, 4, 4]
Das hat folgende Vorteile: 1. Du brauchst Dir keine Gedanken darum zu machen, ob irgendwo anders die selbe Liste verwendet wird, aber dort keine Änderungen erwartet werden. 2. Du kannst irgendein iterierbares Objekt als Input nehmen (Dateien, Tuple, Generatoren) 3. Es ist klarer, dass hier etwas Neues entsteht, im anderen Fall muß ich erst die ganze Schleife durchlesen, um mir sicher zu sein, dass sich die Liste ändert oder eben nicht.
PS: Warum Dein Code nicht klappt: Woher »value« in Deiner for-Schleife den Wert hat, weiß Python ja nicht mehr. Wie kann dann ein Ändern des Wertes wieder in die Liste zurückgespiegelt werden.