Python-Listenersetzung mit bedingter boolescher Logik
Anhand einer Liste von Werten möchten Sie möglicherweise bestimmte Elemente basierend auf a selektiv durch „Keine“ ersetzen Zustand. Die durch eine Funktion „condition()“ definierte Bedingung kann anhand seines Werts bestimmen, ob ein Element ersetzt werden soll. Diese Frage untersucht verschiedene Möglichkeiten, diese Ersetzung in Python zu erreichen, und stellt gleichzeitig eine Beispielbedingung bereit, die ungerade Elemente ersetzt.
Lösung 1: Listenverständnis
Der effizienteste Weg Um diese Ersetzung durchzuführen, muss ein Listenverständnis verwendet werden. Dieser Ansatz generiert eine neue Liste, wobei die ursprüngliche Reihenfolge erhalten bleibt und übereinstimmende Elemente ersetzt werden:
<code class="python">new_items = [x if x % 2 else None for x in items]</code>
In diesem Beispiel werden Elemente, die durch 2 teilbar sind (gerade Zahlen), beibehalten, während ungerade Zahlen durch Keine ersetzt werden.
Lösung 2: In-Place-Änderung
Alternativ können Sie die Originalliste direkt ändern. Dieser Ansatz ist jedoch geringfügig weniger effizient:
<code class="python">for index, item in enumerate(items): if not (item % 2): items[index] = None</code>
Diese Methode iteriert über die Liste und ersetzt ungeradzahlige Elemente durch None in-place.
Zeitkomplexitätsanalyse
Beide Lösungen haben eine lineare Zeitkomplexität von O(n), was darauf hinweist, dass ihre Laufzeit proportional mit der Anzahl der Elemente in der Liste zunimmt.
Leistungsbenchmarks
Leistungsbenchmarks zeigen vernachlässigbare Unterschiede zwischen den beiden Lösungen. Bei großen Listen ist das Listenverständnis jedoch etwas schneller.
Das obige ist der detaillierte Inhalt vonWie ersetze ich Elemente in einer Python-Liste basierend auf bedingter boolescher Logik?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!