1 回答

TA貢獻1876條經(jīng)驗 獲得超7個贊
函數(shù)m
返回 4 個函數(shù)的列表lambda
。這些函數(shù)中的每一個都采用一個參數(shù) ,x
并返回一個值,該值是通過將該值乘以 來計算的i
。其目的可能是分別為這 4 個 lambda 函數(shù)中的每一個i
采用連續(xù)值 0、1、2 和 3(由函數(shù)生成)。range
但是,這些 lambda 函數(shù)不會i
在創(chuàng)建時進行復(fù)制,而是會i
在調(diào)用時使用當(dāng)前的值。當(dāng)函數(shù)m
返回 4 個 lambda 函數(shù)的列表時,具有來自函數(shù)i
的最終值。因此,所有 4 個 lambda 函數(shù)都是相同的,并將其參數(shù)乘以 3 并返回該乘積作為結(jié)果。3
range
[m(9) for m in m()]
是一個列表推導(dǎo)式,它將創(chuàng)建一個列表,其中每個元素都是通過第一次調(diào)用而連續(xù)創(chuàng)建的,對于返回的列表中的m()
每個值,正如我們所見,它是一個 lambda 函數(shù),它將其參數(shù)乘以 3,并使用參數(shù)調(diào)用該函數(shù)m
9 并獲取結(jié)果 (27) 并將其附加到正在創(chuàng)建的新列表中。因此,我們最終得到一個包含 4 個元素的列表,所有元素都是 27, [27, 27, 27, 27]
,然后將其打印出來。
添加回答
舉報