首頁 >後端開發 >Python教學 >如何在 Python 列表推導式中正確使用 if/else?

如何在 Python 列表推導式中正確使用 if/else?

Barbara Streisand
Barbara Streisand原創
2024-12-16 11:06:11835瀏覽

How to Correctly Use if/else in Python List Comprehensions?

使用if/else 條件表達式的列表推導式

在Python 中,列表推導式提供了一種將可迭代元素轉換為新列表的優雅方法。然而,將包含 if/else 語句的傳統 for 迴圈轉換為列表推導式可能會很棘手。

問題陳述:

考慮以下for 循環:

results = []
for x in xs:
    results.append(f(x) if x is not None else '')

目標是如果x 為None 則為'',否則使用列表為f(x)理解。試著將其寫為:

[f(x) for x in xs if x is not None else '']

會導致語法錯誤。正確的語法是什麼?

解:

解在於列表理解中元素的排序。正確的語法是:

[f(x) if x is not None else '' for x in xs]

泛化:

一般來說,對於帶有if/else 條件表達式的列表推導式,語法是:

[f(x) if condition else g(x) for x in sequence]

對於僅包含if 條件的列表推導式(不包括else子句),語法簡化to:

[f(x) for x in sequence if condition]

區分基於條件過濾元素的列表推導式和基於條件求值為指定值的條件表達式非常重要。

以上是如何在 Python 列表推導式中正確使用 if/else?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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