有變數前綴的Python for-in 迴圈
在Python 中,可能會遇到如下程式碼片段:
foo = [x for x in bar if x.occupants > 1]這段程式碼片段提出了一個問題:它是什麼意思以及它是如何實現的工作嗎?
理解列表理解
所討論的語法稱為列表理解。列表理解是一種基於現有列表生成新列表的簡潔方法,通常透過過濾或轉換其元素來實現。列表理解的語法結構
A列表理解遵循以下一般語法結構:[expression for item in iterable if condition]
解釋給定範例
在給定的範例中,涉及以下元素:工作原理
列表理解迭代列表欄中的每個元素 x。對於每個元素 x,它檢查條件 x.ocupants > 是否成立。 1 為真。如果條件為 True,則計算表達式 x 並將其包含在正在建構的新清單中。與For-in 循環比較
列表理解是等效的到以下傳統的for-in 循環:foo = [] for x in bar: if x.occupants > 1: foo.append(x)但是,列表理解更加簡潔可讀。
另一種理解語法的方法
或者,列表理解可以被認為是兩個內建函數的捷徑:foo = map(lambda x: x, filter(lambda x: x.occupants > 1, bar))
以上是Python 帶有變數前綴的列表理解是如何運作的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!