Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die if/else-Logik in Python-Listenverständnissen effektiv nutzen?

Wie kann ich die if/else-Logik in Python-Listenverständnissen effektiv nutzen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-20 10:12:10727Durchsuche

How Can I Effectively Use if/else Logic within Python List Comprehensions?

Bedingte Ausdrücke in Listenverständnissen für if/else

In Python ist es möglich, for-Schleifen, die if/else-Anweisungen enthalten, in Listen zu übersetzen Verständnis mithilfe bedingter Ausdrücke. Sehen wir uns ein häufiges Szenario noch einmal an:

For-Schleife mit if/else:

results = []
for x in xs:
    results.append(f(x) if x is not None else '')

Hier wollen wir das Ergebnis von f(x) an Ergebnisse anhängen, wenn x nicht None ist; andernfalls hängen wir eine leere Zeichenfolge an.

Der Versuch, dies wie folgt in ein Listenverständnis umzuwandeln:

[f(x) for x in xs if x is not None else '']

führt zu einem SyntaxError. Die korrekte Syntax lautet:

[f(x) if x is not None else '' for x in xs]

Im Allgemeinen lautet die Syntax für Listenverständnisse mit if/else:

[f(x) if condition else g(x) for x in sequence]

Wobei f(x) und g(x) die Ausdrücke darstellen werden basierend auf der Bedingung ausgewertet.

Bedingte Ausdrücke, die in der obigen Syntax verwendet werden, dienen demselben Zweck wie der ternäre Operator ?: in anderen Programmiersprachen gefunden. Zum Beispiel:

value = 123
print(value, 'is', 'even' if value % 2 == 0 else 'odd')

Dies drückt prägnant aus, dass die Ausgabe „gerade“ sein sollte, wenn der Wert durch 2 teilbar ist; andernfalls sollte es „ungerade“ sein.

Das obige ist der detaillierte Inhalt vonWie kann ich die if/else-Logik in Python-Listenverständnissen effektiv nutzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn