首頁  >  文章  >  後端開發  >  Python 列表推導式中條件語句的正確語法是什麼?

Python 列表推導式中條件語句的正確語法是什麼?

Susan Sarandon
Susan Sarandon原創
2024-10-22 13:14:02323瀏覽

What is the Correct Syntax for Conditional Statements in List Comprehensions in Python?

帶有條件語句的列表推導式

在 Python 中,列表推導式提供了一種產生新列表的緊湊方式。但是,在這些推導式中使用條件語句時,遵守正確的語法以避免錯誤至關重要。

問題:比較可迭代對象

假設我們有兩個可迭代對象,一個和b,我們想要創建一個新列表,其中包含出現在兩個可迭代物件中的元素。我們嘗試使用以下程式碼:

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

語法錯誤

但是,此程式碼會產生無效語法錯誤,表明理解中使用的lambda 函數存在問題.

解:重新排序推導式

在列表推導式中使用條件語句的正確語法是將if 表達式放在for 子句之後。在我們的例子中,更正後的程式碼將是:

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

此理解將迭代 a 並僅當元素不存在於 b 中時才將元素新增至新清單。結果應該產生 ['r'],如預期。

替代語法

或者,我們可以使用if-else 三元運算子來處理其中的條件邏輯清單理解:

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

此程式碼將建立一個新列表,其中新增b 中不存在的元素,而其他元素接收None 值。

以上是Python 列表推導式中條件語句的正確語法是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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