理解巢狀清單理解
巢狀清單理解是Python 中的一個強大功能,可讓您輕鬆建立複雜的資料結構。為了理解它是如何運作的,讓我們來看一個簡化版本:
<code class="python">[(min([row[i] for row in rows]), max([row[i] for row in rows])) for i in range(len(rows[0]))]</code>
這個表達式相當於下面的for 循環:
<code class="python">result=[] for i in range(len(rows[0])): innerResult=[] for row in rows: innerResult.append(row[i]) innerResult2=[] for row in rows: innerResult2.append(row[i]) tuple=(min(innerResult), max(innerResult2)) result.append(tuple)</code>
理解嵌套列表理解的關鍵是巢狀for 循環。外層循環迭代 rows[0] 的元素,而內層循環迭代 rows 中的行。
在上面的表達式中,第一個 for 迴圈負責建立清單的外部結構。對於每次迭代,它都會建立一個新元組。同時,第二個 for 迴圈會建立元組的內部結構。對於 rows 中的每一行,它會提取索引 i 處的元素並將其新增至內部結果清單。
為了概括這個概念,任何形式的嵌套列表理解
<code class="python">[exp2([exp1 for x in xSet]) for y in ySet]</code>
都可以翻譯成for 循環結構:
<code class="python">result=[] for y in ySet: innerResult =[] for x in xSet: innerResult.append(exp1) exp2Result = exp2(innerResult) result.append(exp2Result)</code>
對於更簡單的情況,等價很簡單:
以上是Python 中的嵌套列表理解如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!