首頁  >  文章  >  後端開發  >  Python 帶有變數前綴的列表理解是如何運作的?

Python 帶有變數前綴的列表理解是如何運作的?

DDD
DDD原創
2024-11-22 02:33:13447瀏覽

How Does Python's List Comprehension with a Variable Prefix Work?

有變數前綴的Python for-in 迴圈

在Python 中,可能會遇到如下程式碼片段:

foo = [x for x in bar if x.occupants > 1]

這段程式碼片段提出了一個問題:它是什麼意思以及它是如何實現的工作嗎?

理解列表理解

所討論的語法稱為列表理解。列表理解是一種基於現有列表生成新列表的簡潔方法,通常透過過濾或轉換其元素來實現。

列表理解的語法結構

A列表理解遵循以下一般語法結構:
[expression for item in iterable if condition]

解釋給定範例

在給定的範例中,涉及以下元素:
  • 表達式:
  • x(這將成為新列表的元素)
  • Iterable:
  • bar(要過濾的列表或變形)
  • 條件:
  • x. 佔用者 > 1(用於過濾欄)

工作原理

列表理解迭代列表欄中的每個元素 x。對於每個元素 x,它檢查條件 x.ocupants > 是否成立。 1 為真。如果條件為 True,則計算表達式 x 並將其包含在正在建構的新清單中。

與For-in 循環比較

列表理解是等效的到以下傳統的for-in 循環:
foo = []
for x in bar:
    if x.occupants > 1:
        foo.append(x)

但是,列表理解更加簡潔可讀。

另一種理解語法的方法

或者,列表理解可以被認為是兩個內建函數的捷徑:
  • map(function, iterable) 將給定的函數應用於iterable中的每個元素,傳回一個列表results.
  • filter(condition, iterable) 根據給定條件過濾可迭代對象,傳回滿足條件的元素列表。

在給定的範例中,列表推導式相當於:
foo = map(lambda x: x, filter(lambda x: x.occupants > 1, bar))

以上是Python 帶有變數前綴的列表理解是如何運作的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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