Wie platziere ich eine if-Anweisung richtig in einem Listenverständnis?

Barbara Streisand
Freigeben: 2024-10-22 13:33:02
Original
860 Leute haben es durchsucht

How to Correctly Place an if Statement in a List Comprehension?

Syntaxfehler im Listenverständnis mit if-Anweisung

Im bereitgestellten Listenverständnis:

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

Sie stoßen auf a Syntaxfehler, gekennzeichnet durch das Symbol „^“. Der Fehler ist auf eine falsche Platzierung der if-Anweisung innerhalb des Verständnisses zurückzuführen.

Die korrekte Syntax für ein Listenverständnis mit einer if-Bedingung lautet:

<code class="python">[expression for item in iterable if condition]</code>
Nach dem Login kopieren

In Ihrem Fall sollte die Bedingung so sein nach der for-Anweisung platziert werden:

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

Dieses überarbeitete Verständnis iteriert über die Elemente von a, bewertet, ob jedes Element nicht in b enthalten ist, und schließt nur diejenigen Elemente in die resultierende Liste ein, die die Bedingung erfüllen . Die Ausgabe dieses Codes lautet wie gewünscht ['r'].

Zusätzlich können Sie einen ternären If-else-Operator verwenden, um einen alternativen Wert für Elemente bereitzustellen, die die Bedingung nicht erfüllen:

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

Dieses Verständnis gibt eine Liste zurück, die „r“ und „Keine“ enthält, da „q“ sowohl in a als auch in b enthalten ist.

Das obige ist der detaillierte Inhalt vonWie platziere ich eine if-Anweisung richtig in einem Listenverständnis?. 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