首頁 > 後端開發 > Python教學 > 如何將巢狀列表推導式轉換為 Python 中的等效 for 迴圈?

如何將巢狀列表推導式轉換為 Python 中的等效 for 迴圈?

DDD
發布: 2024-10-29 07:35:02
原創
321 人瀏覽過

How can I translate nested list comprehensions into equivalent for loops in Python?

理解嵌套列表推導式

嵌套列表推導式提供了一種簡潔而強大的方法來轉換和組合Python 中的資料結構。基本語法是將多個 for 表達式括在方括號內,每個 for 表達式括在自己的一組圓括號內。

轉換為等效的 For 迴圈

To了解巢狀清單推導式,將它們轉換為等效的 for 迴圈形式會很有幫助。考慮這個例子:

[(min([row[i] for row in rows]), max([row[i] for row in rows])) for i in range(len(rows[0]))]
登入後複製

這可以表示為for 循環,如下所示:

result = []
for i in range(len(rows[0])):
  inner_result = []
  for row in rows:
    inner_result.append(row[i])
  inner_result2 = []
  for row in rows:
    inner_result2.append(row[i])
  tuple = (min(inner_result), max(inner_result2))
  result.append(tuple)
登入後複製

概括模式

以上示例遵循一般模式:

[exp2([exp1 for x in xSet]) for y in ySet]
登入後複製

等效for 迴圈:

result = []
for y in ySet:
  inner_result = []
  for x in xSet:
    inner_result.append(exp1)
  exp2_result = exp2(inner_result)
  result.append(exp2_result)
登入後複製

其他範例

  • [exp1 for x in xSet for xSet xSet y in ySet] 等價於result = []; for x in xSet: for y in ySet: result.append(exp1)
  • [[exp1 for x in xSet] for y in ySet] 等價於result = [];對於ySet 中的y:inner_result = [];對於xSet 中的x:inner_result.append(exp1); result.append(inner_result)

以上是如何將巢狀列表推導式轉換為 Python 中的等效 for 迴圈?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板