Was ist die richtige Syntax für bedingte Anweisungen in Listenverständnissen in Python?

Susan Sarandon
Freigeben: 2024-10-22 13:14:02
Original
337 Leute haben es durchsucht

What is the Correct Syntax for Conditional Statements in List Comprehensions in Python?

Listenverständnisse mit bedingten Anweisungen

In Python bieten Listenverständnisse eine kompakte Möglichkeit, neue Listen zu generieren. Bei der Verwendung von bedingten Anweisungen innerhalb dieser Verständnisse ist es jedoch wichtig, die richtige Syntax einzuhalten, um Fehler zu vermeiden.

Problem: Iterables vergleichen

Angenommen, wir haben zwei Iterables, a und b, und wir möchten eine neue Liste erstellen, die Elemente enthält, die in beiden Iterables vorkommen. Wir versuchen den folgenden Code:

<code class="python">a = ('q', 'r')
b = ('q')
print([ y if y not in b for y in a])</code>
Nach dem Login kopieren

Syntaxfehler

Dieser Code erzeugt jedoch einen ungültigen Syntaxfehler, der auf ein Problem mit der im Verständnis verwendeten Lambda-Funktion hinweist .

Lösung: Neuordnung des Verständnisses

Die korrekte Syntax für die Verwendung einer bedingten Anweisung in einem Listenverständnis besteht darin, den if-Ausdruck nach der for-Klausel zu platzieren. In unserem Fall wäre der korrigierte Code:

<code class="python">[y for y in a if y not in b]</code>
Nach dem Login kopieren

Dieses Verständnis iteriert über a und fügt der neuen Liste nur dann Elemente hinzu, wenn sie in b nicht vorhanden sind. Das Ergebnis sollte wie erwartet ['r'] ergeben.

Alternative Syntax

Alternativ können wir einen ternären If-Else-Operator verwenden, um die darin enthaltene bedingte Logik zu handhaben das Listenverständnis:

<code class="python">[y if y not in b else None for y in a]</code>
Nach dem Login kopieren

Dieser Code erstellt eine neue Liste, in der Elemente, die in b nicht vorhanden sind, hinzugefügt werden, während andere Elemente None-Werte erhalten.

Das obige ist der detaillierte Inhalt vonWas ist die richtige Syntax für bedingte Anweisungen in Listenverständnissen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!