if/else 列表推導式中的條件表達式
在Python 中,可以將包含if/else 語句的for 迴圈轉換為列表使用條件表達式的理解。讓我們回顧一個常見的場景:
帶有if/else 的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]
其中f(x) 和g(x) 表示表達式根據條件進行評估。
上述語法中使用的條件式與三元運算子 ? 具有相同的用途:在其他程式語言中也能找到。例如:
value = 123 print(value, 'is', 'even' if value % 2 == 0 else 'odd')
這簡潔地表達瞭如果 value 能被 2 整除,則輸出應該是「偶數」;否則,它應該是「奇數」。
以上是如何在 Python 列表推導式中有效使用 if/else 邏輯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!