In Python bietet das Listenverständnis eine präzise Möglichkeit, Listen basierend auf vorhandenen Iterables zu erstellen. Es stellte sich jedoch eine Frage bezüglich des Listenverständnisses mit einer if-Anweisung.
Das Ziel bestand darin, zwei Iterables, a und b, zu vergleichen und nur die Elemente auszugeben, die in beiden vorkamen. Der beabsichtigte Code sah so aus:
print([y if y not in b for y in a])
Leider führte dieser Code zu einem Syntaxfehler. Das Problem liegt in der Reihenfolge des if-else-Konstrukts. In Python muss die bedingte Anweisung nach der for-Schleife im Listenverständnis stehen, es sei denn, sie wird als ternärer Operator verwendet.
Korrekte Syntax:
[y for y in a if y not in b]
Dieser Code durchläuft jedes Element y in a. Wenn y in b nicht gefunden wird, wird es der Liste hinzugefügt. Die resultierende Liste enthält die Elemente, die sowohl in a als auch in b vorkommen.
Alternative ternäre Operatorsyntax:
[y if y not in b else other_value for y in a]
Dieser Code verwendet den ternären Operator, um einen alternativen Wert (other_value) anzugeben, falls y nicht in gefunden wird B. Dieser Ansatz ist weniger verbreitet und wird normalerweise verwendet, wenn ein Standardwert benötigt wird.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3