def
num():
return
[lambda x: x * i for i in
range(4
)]print
([func(2)
for func in num()]
)
考點:匿名函式lambda的使用,列表生成式,對迴圈體**的解析
lambda函式隱藏了return,實際上是可以寫成以下形式的:
for i in
range(4
):deffunc
(x):
return x*i
再向外解析,lambda的結果放在了乙個列表裡面,整體又包在乙個函式裡面:
def
num():
list1=
for i in
range(4
):deffunc
(x):
return x*i
return list1
再解析最後一步的函式。最後一步函式就是把列表中的每乙個函式都傳參,計算出結果,放在乙個列表裡面。
# 正確答案:[6
,6,6
,6]
如果前面沒有拆明白的情況下,容易直接想成[0,2,4,6]
。
那麼將這個題如何改,可以讓結果變成[0,2,4,6]
呢?
def
num():
list1=
for i in
range(4
):deffunc
(x,i=i)
:return x*i # 在這裡想辦法直接把這個值扔到列表裡面,x需要傳入,無法改變,只能固定i,只需要把上面for迴圈中的i扔進來就可以了
return list1
面試題整理
2014.3.19日整理 1.建立一張表hack 裡面就乙個欄位num,然後用sql語句從1開始插入到100,怎麼寫?oracle 答 1.create tablehack num number 建表語句 2.begin for i in1.100loop insert intohack num v...
整理面試題
整理面試題 1 說說activity,intent,service是什麼關係 答 乙個activity 通常是乙個單獨的螢幕,每乙個 activity 都被實現為乙個單獨的類,這些類都是從 activity 基類中繼承而來的。activity 類會顯示由檢視控制項組成的使用者介面,並對檢視控制項的事...
面試題整理
static變數 全域性變數與區域性變數 靜態資料區 堆疊 heap和stack的區別 堆是由malloc之類的函式分配的空間位址由低向高增長 stack是自動分配變數位址由高向低 減少程式的記憶體分配 1.棧區 stack 由編譯器自動分配釋放,存放函式的引數值,區域性變數的值等。其操作方式類似於...