2016-12-10 2 views
0

Ich arbeite mit Python3 und ich frage mich, ob das Verständnis der Liste immer sicher ist.Ist das Listenverständnis immer sicher?

Zum Beispiel:

mylist = ["string1", "string2", "foo", "bar"] 
# I want to remove all items with "string" substring: 
pattern_to_rm = "string" 
mylist = [ item for item in mylist if pattern_to_rm not in item ] 
# print(mylist) = ["foo", "bar"] 

Kann ich einige Probleme mit dieser Art und Weise (wie ich die Eingangslistengröße am Wechsel während Iterieren)? Muss ich eine Kopie oder etwas machen? mylist wird nie eine riesige Liste sein, aber enthält sehr wichtige Daten.

Jede Hilfe oder Vorschlag wird sehr geschätzt.

Antwort

2

Dieser Code ändert die Listengröße beim Iterieren nicht. Es erstellt eine neue Liste aus den gefilterten Elementen und weist die Referenz mylist der neuen Liste neu zu. Das ist sicher, und Sie müssen keine Kopie oder irgendetwas machen.

+0

Vielen Dank für diese Antwort und wichtige Informationen! – glihm

Verwandte Themen