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

Patricia Arquette
發布: 2024-10-22 12:47:39
原創
513 人瀏覽過

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中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板