En raison des objets mutables dans la liste, a et b ne veulent en fait que la même adresse. Supprimer sur b affectera l'itération de a. Si vous ne me croyez pas, imprimez a et voyez
.
a = ["asd_1", "asd_2", "3", "4"]
b = a
for i in a:
print(i)
if i.find('asd_') < 0:
b.remove(i)
print a
En raison des objets mutables dans la liste, a et b ne veulent en fait que la même adresse. Supprimer sur b affectera l'itération de a. Si vous ne me croyez pas, imprimez a et voyez
.Sortie :
À ce moment, la longueur de a est devenue 3
Dans le code ci-dessus, b est juste une référence à a. Si vous modifiez b, a sera également modifié, ce qui affecte directement l'itération de a.
Vous pouvez l'essayer
ou