Liste Python & pour chaque accès (Rechercher/Remplacer dans la liste)

J'ai d'abord pensé que Python était un pur passe-par-langue de référence.

À venir à partir de C/C++ je ne peux pas aider mais penser à propos de la gestion de la mémoire, et il est difficile de le mettre hors de ma tête. Donc, je suis en train de penser à partir d'une perspective Java et de penser à tout, mais primitives comme un passage par référence.

Problème: j'ai une liste, contenant un tas d'instances d'une classe définie par l'utilisateur.

Si j'utilise le pour-chaque syntaxe, c'est à dire.:

for member in my_list:
    print(member.str);

Est member l'équivalent d'une référence à l'objet?

Est-il l'équivalent de l'action:

i = 0
while i < len(my_list):
    print(my_list[i])
    i += 1

Je ne pense PAS, parce que quand je suis à la recherche de faire un remplacement, il ne fonctionne pas, c'est que cela ne fonctionne pas:

for member in my_list:
    if member == some_other_obj:
        member = some_other_obj

Un simple rechercher et remplacer dans une liste. Peut-être que le faire dans une boucle for-each, si oui, comment? D'autre, je n'ai qu'à utiliser le hasard de la syntaxe d'accès (entre crochets), ou ne travaillent pas et j'ai besoin de supprimer l'entrée, et insérez une nouvelle un seul? I. e.:

i = 0
for member in my_list:
   if member == some_other_obj:
      my_list.remove(i)
      my_list.insert(i, member)
   i += 1
InformationsquelleAutor Syndacate | 2011-09-14