Werte in einer Liste mit Python ersetzen
In Python müssen Sie möglicherweise bestimmte Werte in einer Liste durch einen anderen Wert ersetzen, z als Keine. Ein gängiger Ansatz besteht darin, die Liste zu durchlaufen, jedes Element anhand einer Bedingung zu prüfen und es zu ersetzen, wenn es die Kriterien erfüllt. Eine effizientere Alternative ist jedoch die Verwendung von Listenverständnissen.
Listenverständnislösung
Ein Listenverständnis ist eine prägnante und elegante Möglichkeit, eine neue Liste durch iterative Anwendung zu erstellen eine Berechnung oder Transformation für jedes Element einer vorhandenen Liste. Um beispielsweise Werte in einer Liste basierend auf einer Bedingung zu ersetzen, können Sie die folgende Syntax verwenden:
new_items = [x if condition(x) else None for x in items]
In diesem Ausdruck gibt der erste Teil (x wenn Bedingung(x)) den Ersatzwert für jedes Element an. Für Elemente, die die Bedingung erfüllen (Bedingung(x) ist wahr), wird der ursprüngliche Wert (x) beibehalten. Für diejenigen, die dies nicht tun, wird der Ersatzwert (in diesem Fall None) verwendet.
Beispiel
Betrachten Sie das Beispiel des Ersetzens ungerader Zahlen durch None in einer Liste :
items = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Replace odd numbers with None
new_items = [x if x % 2 else None for x in items]
# Print the modified list
print(new_items)
Ausgabe:
[None, 1, None, 3, None, 5, None, 7, None, 9, None]
Änderung vor Ort
Während es üblich ist, eine neue Liste wie oben gezeigt zu erstellen, können Sie die ursprüngliche Liste bei Bedarf auch direkt ändern. Es ist jedoch wichtig zu beachten, dass dies im Vergleich zum Listenverständnis-Ansatz nicht wirklich Zeit spart.
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