Wann erfordert die Listenverständnissyntax in Python einen ternären Operator?

Patricia Arquette
Freigeben: 2024-10-22 12:47:39
Original
456 Leute haben es durchsucht

When Does List Comprehension Syntax Require a Ternary Operator in Python?

Listenverständnis-Rätsel: Bedingte Filterung in Iterables

In Python bietet das Listenverständnis eine prägnante 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 vorgesehene Code sah so aus:

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

Leider führte dieser Code zu einem Syntaxfehler. Das Problem liegt in der Reihenfolge des if-else-Konstrukts. In Python muss die bedingte Anweisung im Listenverständnis nach der for-Schleife stehen, es sei denn, sie wird als ternärer Operator verwendet.

Korrekte Syntax:

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

Dieser Code iteriert durch 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:

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

Dieser Code verwendet den ternären Operator, um an anzugeben alternativer Wert (other_value) für den Fall, dass y nicht in b gefunden wird. Dieser Ansatz ist weniger verbreitet und wird normalerweise verwendet, wenn ein Standardwert benötigt wird.

Das obige ist der detaillierte Inhalt vonWann erfordert die Listenverständnissyntax in Python einen ternären Operator?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!