首頁  >  文章  >  後端開發  >  Python 中的列表理解語法何時需要三元運算子?

Python 中的列表理解語法何時需要三元運算子?

Patricia Arquette
Patricia Arquette原創
2024-10-22 12:47:39443瀏覽

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

列表理解難題:可迭代物件中的條件過濾

在Python 中,列表理解提供了一種基於現有可迭代物件建立列表的簡潔方法。然而,出現了涉及 if 語句的列表理解的問題。

目標是比較兩個可迭代物件 a 和 b,並僅列印兩者中出現的元素。預期的程式碼如下所示:

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

不幸的是,此程式碼導致語法錯誤。問題在於 if-else 結構的順序。在 Python 中,條件語句必須位於列表理解中的 for 迴圈之後,除非它被用作三元運算子。

正確語法:

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

此程式碼迭代遍歷 a 中的每個元素 y。如果在 b 中未找到 y,則將其新增至清單。結果清單將包含出現在 a 和 b 中的元素。

替代三元運算子語法:

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

此程式碼使用三元運算子來指定如果在b 中找不到y,則使用替代值(other_value)。這種方法較不常見,通常在需要預設值時使用。

以上是Python 中的列表理解語法何時需要三元運算子?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn