Aufrechterhaltung der Reihenfolge beim Entfernen von Duplikaten aus einer Liste
Das Entfernen doppelter Elemente aus einer Liste bei gleichzeitiger Beibehaltung der ursprünglichen Reihenfolge kann eine Herausforderung sein, da die Verwendung von Ein Satz zum Entfernen von Duplikaten stört normalerweise die anfängliche Sequenz.
Um dieses Problem zu beheben, hat die Python-Community verschiedene integrierte und idiomatische Lösungen. Eine der effizientesten Optionen ist eine Funktion namens f7, die einen Satz nutzt, um Duplikate effizient zu erkennen und zu entfernen:
def f7(seq): seen = set() seen_add = seen.add return [x for x in seq if not (x in seen or seen_add(x))]
Diese Funktion verwendet einen Satz namens seen, um Duplikate schnell zu identifizieren und zu entfernen. Die geheime Optimierung besteht darin, seen.add seen_add als lokale Variable zuzuweisen. Dadurch wird verhindert, dass Python seen.add bei jeder Iteration dynamisch auflöst, was zu Leistungseinbußen führen kann, da sich seen.add möglicherweise ändern kann.
Andere Alternativen, wie z. B. die geordnete Mengendatenstruktur von ActiveState, sind vorhanden auch verfügbar, wenn Sie damit rechnen, häufige Duplikatentfernungsvorgänge für denselben Datensatz durchzuführen.
Es ist unbedingt zu beachten, dass seen.add() im bereitgestellten Code durchgängig None zurückgibt. Dies erfordert die Verwendung des logischen ODER-Operators als Methode zum Auslösen einer Satzaktualisierung.
Das obige ist der detaillierte Inhalt vonWie kann ich Duplikate effizient aus einer Liste entfernen und gleichzeitig die Reihenfolge in Python beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!