使用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 條件的列表推導式,語法is:
[f(x) for x in sequence if condition]
請注意,列表推導式的 if/else 語法中使用的條件表達式與用於的 if 構造不同過濾。條件表達式允許根據條件在兩個表達式之間進行選擇,類似於其他語言中的三元運算子 ?: 。例如:
value = 123 print(value, 'is', 'even' if value % 2 == 0 else 'odd')
此範例使用條件式列印該值是偶數還是奇數。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3