def thing(mode, data):
return [
item for item in data
if {
'large': lambda item: item > 100,
'small': lambda item: item < 100,
}[mode](item)
]
此列表理解生成lambdas字典,通過mode
參數檢索一個lambda,並將其應用於當前正在處理的列表項。我的問題是:這是什麼性能特點?在列表理解期間Python如何執行?
在listcomp的每次迭代期間是否從頭開始創建整個字典?還是它創建一次並用於每個項目?
它每次創建。它還將在每個循環中創建2個函數 – JBernardo 2013-03-13 02:05:02
提示:'import dis; dis.dis(事)'。 – DSM 2013-03-13 02:05:23