Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich eine Liste basierend auf einer Bedingung effizient partitionieren?
Partitionieren von Listen basierend auf Bedingungen
Wenn Sie eine Liste basierend auf einer bestimmten Bedingung in zwei Teile aufteilen, ist es verlockend, die Liste zweimal zu durchlaufen. Erstellen Sie zwei neue Listen wie folgt:
good = [x for x in mylist if x in goodvals] bad = [x for x in mylist if x not in goodvals]
Dieser Ansatz erfordert jedoch zwei separate Iterationen über die Liste, die kann ineffizient sein. Um die Leistung zu verbessern, sollten Sie eine manuelle Iteration mit bedingtem Anhängen in Betracht ziehen:
good, bad = [], [] for x in mylist: (bad, good)[x in goodvals].append(x)
In diesem Code:
Dieser Ansatz vermeidet die Notwendigkeit zweier separater Iterationen und verbessert die Leistung, indem die Anzahl der Listendurchläufe reduziert wird von zwei auf eins. Es gilt auch als eleganter, da es die Partitionierungslogik prägnant und lesbar erfasst.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Liste basierend auf einer Bedingung effizient partitionieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!