python affecter des valeurs à la liste des éléments dans la boucle

Est-ce un python de comportement? Je pense que le résultat final devrait être [0,0,0] et la fonction id() doit retourner des valeurs identiques à chaque itération. Comment faire pythonic, et ne pas utiliser d'énumérer ou range(len(bar)?

bar = [1,2,3]
print bar
for foo in bar:
    print id (foo)
    foo=0
    print id(foo)
print bar

de sortie:

[1, 2, 3]
5169664
5169676
5169652
5169676
5169640
5169676
[1, 2, 3]

OriginalL'auteur Chris | 2013-12-19