Ersetzen von Werten in einer Liste basierend auf einer Bedingung in Python
In Python kann es vorkommen, dass Sie Elemente innerhalb einer Liste bearbeiten müssen B. das Ersetzen von Werten basierend auf einer bestimmten Bedingung. Durch den Einsatz effizienter Techniken können Sie diese Änderungen effektiv durchführen.
Eine Methode besteht darin, ein Listenverständnis zu nutzen. Wenn Sie beispielsweise eine Liste [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] haben und Elemente ersetzen möchten, bei denen der Modul von 2 gleich 0 ist, können Sie das folgende Verständnis verwenden :
new_items = [x if x % 2 else None for x in items]
Dieses Verständnis erstellt eine neue Liste, in der jedes Element anhand der Bedingung (x % 2) überprüft wird. Wenn die Bedingung falsch ist, wird der ursprüngliche Wert (x) beibehalten. Andernfalls wird das Element durch None ersetzt.
Alternativ können Sie die Liste direkt mit einer for-Schleife ändern:
for index, item in enumerate(items): if not (item % 2): items[index] = None
Diese Lösung durchläuft die Liste, identifiziert Elemente, die die Bedingung erfüllen (Element % 2) und weist diesen Positionen dann None zu.
Die Zeitkomplexitätsanalyse zeigt das Beide Ansätze nehmen ungefähr gleich viel Zeit in Anspruch. In Python 3.6.3 übertrifft das Listenverständnis die for-Schleife in puncto Geschwindigkeit leicht, während in Python 2.7.6 die Leistung vergleichbar ist.
Daher ist es die effizienteste Methode, Werte in einer Liste basierend zu ersetzen Voraussetzung ist die Verwendung eines Listenverständnisses, da es das gewünschte Ergebnis auf klare und prägnante Weise erzielt. Diese Technik kann besonders nützlich sein, wenn Sie mit großen Listen arbeiten, da sie die Anzahl der erforderlichen Operationen minimiert.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3