Korrigieren der Syntax für das Listenverständnis mit bedingten Anweisungen
Beim Versuch, ein Listenverständnis zu verwenden, um zwei Iterables zu vergleichen und die angezeigten Elemente auszugeben In beiden Fällen kann ein Syntaxfehler auftreten, wenn die bedingte Anweisung nicht korrekt platziert ist.
Im bereitgestellten Codeausschnitt tritt der Fehler auf, weil die if-Bedingung (y nicht in b) vor der for-Anweisung geschrieben wird. Die korrekte Syntax für ein Listenverständnis mit einer if-Bedingung besteht darin, die bedingte Anweisung nach der for-Anweisung zu platzieren, wie unten gezeigt:
<code class="python">[y for y in a if y not in b]</code>
Dieser überarbeitete Code iteriert korrekt über jedes Element y im iterierbaren a und Schließen Sie nur die Elemente ein, die nicht im iterierbaren b vorhanden sind. Als Ergebnis wird ['r'] wie erwartet ausgegeben.
Alternativ können Sie auch einen ternären If-else-Operator verwenden, um das gewünschte Ergebnis zu erzielen, wie unten gezeigt:
<code class="python">[y if y not in b else other_value for y in a]</code>
In diesem Fall wird der other_value für jedes y gedruckt, das in b existiert.
Das obige ist der detaillierte Inhalt vonWie behebe ich Syntaxfehler beim Listenverständnis mit bedingten Anweisungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!