Heim  >  Artikel  >  Backend-Entwicklung  >  Wie platziere ich eine if-Anweisung richtig in einem Listenverständnis?

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

Barbara Streisand
Barbara StreisandOriginal
2024-10-22 13:33:02774Durchsuche

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>

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>

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>

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>

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!

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