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!