我想要使用lambda或其他python特性來返回字典,如果條件滿足,或者沒有,則返回none。根據條件返回字典
myDict = None
myDict = lambda c: {} if not myDict else myDict
顯然,這不行,因爲不執行拉姆達,所以這將是最「Python化」的方式來做到這一點?
我想要使用lambda或其他python特性來返回字典,如果條件滿足,或者沒有,則返回none。根據條件返回字典
myDict = None
myDict = lambda c: {} if not myDict else myDict
顯然,這不行,因爲不執行拉姆達,所以這將是最「Python化」的方式來做到這一點?
myDict = None
get_myDict = lambda: myDict or {}
get_myDict()
返回一個空字典。
我認爲條件表達式可能首選邏輯'或'這些天。 (它對初學者來說表現得更加自然一些) – mgilson 2013-04-30 13:39:54
在我看來,你應該只使用條件表達式:
myDict = {} if not myDict else myDict
lambda
是創造功能的一種方式。所以:
func = lambda x: x*x
是大致相同:
def func(x):
return x*x
所以,在你的榜樣,您創建一個功能或多或少等同於:
def myDict(c):
return {} if not myDict else myDict
您也可以使用locals().get('myDict', None)
(或globals().get
取決於你的範圍)
空字典是'FALSE'。 – eumiro 2013-04-30 13:35:27
是的,但我想更新我的字典後,我的意思是myDic.update() – Agus 2013-04-30 13:36:36
第一行後,myDict是None,第二行後它是一個lambda函數。它從來不是一本字典。 – eumiro 2013-04-30 13:37:14