Heim > Backend-Entwicklung > Python-Tutorial > Wie verwende ich if/else in Python-Listenverständnissen richtig?

Wie verwende ich if/else in Python-Listenverständnissen richtig?

Barbara Streisand
Freigeben: 2024-12-16 11:06:11
Original
828 Leute haben es durchsucht

How to Correctly Use if/else in Python List Comprehensions?

Listenverständnis mit if/else-Bedingungsausdrücken

In Python bieten Listenverständnisse eine elegante Möglichkeit, iterierbare Elemente in eine neue Liste umzuwandeln. Es kann jedoch schwierig sein, herkömmliche for-Schleifen mit if/else-Anweisungen in Listenverständnisse zu übersetzen.

Problemstellung:

Bedenken Sie die folgende for-Schleife:

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

Das Ziel besteht darin, '' zu haben, wenn x None und f(x) andernfalls unter Verwendung eines Listenverständnisses ist. Der Versuch, dies wie folgt zu schreiben:

[f(x) for x in xs if x is not None else '']
Nach dem Login kopieren

führt zu einem SyntaxError. Was ist die richtige Syntax?

Lösung:

Die Lösung liegt in der Reihenfolge der Elemente innerhalb des Listenverständnisses. Die korrekte Syntax lautet:

[f(x) if x is not None else '' for x in xs]
Nach dem Login kopieren

Verallgemeinerung:

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

[f(x) if condition else g(x) for x in sequence]
Nach dem Login kopieren

Für Listenverständnisse nur mit if-Bedingungen (mit Ausnahme der else-Klausel) wird die Syntax vereinfacht zu:

[f(x) for x in sequence if condition]
Nach dem Login kopieren

Es ist wichtig, zwischen Listenverständnissen, die Elemente basierend auf einer Bedingung filtern, und bedingten Ausdrücken, die basierend auf einer Bedingung einen angegebenen Wert ergeben, zu unterscheiden.

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage