使用if/else 的列表推導式:語法和用法
在Python 中使用列表推導式時,會遇到合併if /else 邏輯的情況處理條件操作。本文介紹了此類場景的正確語法。
常見任務是根據來源序列建立一個列表,並使用以下包含if/else 建構的for 循環:
results = [] for x in xs: results.append(f(x) if x is not None else '')
如果x 為None,此程式碼將'' 附加到結果列表,否則計算f(x)。使用列表理解也可以實現所需的結果,但需要對語法進行必要的調整:
results = [f(x) if x is not None else '' for x in xs]
關鍵區別在於列表理解中 if 和 else 子句的順序。正確的語法要求將 if 子句放在 for 部分之前,然後是 else 子句。
一般來說,具有if/else 條件的列表理解的語法是:
[f(x) if condition else g(x) for x in sequence]
對於僅涉及從來源序列中過濾元素的if 條件的列表推導式,語法為:
[f(x) for x in sequence if condition]
請注意,使用條件表達式在列表推導式的if/else 語法中,與用於過濾的if構造不同。條件表達式允許根據條件在兩個表達式之間進行選擇,類似於其他語言中的三元運算子 ?: 。例如:
value = 123 print(value, 'is', 'even' if value % 2 == 0 else 'odd')
此範例使用條件式列印該值是偶數還是奇數。
以上是如何在 Python 列表推導式中使用 if/else 邏輯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!