我正在尝试使用lambda或其他python功能在条件满足时返回字典,否则返回否。
myDict = None
myDict = lambda c: {} if not myDict else myDict
显然,这不起作用,因为lambda没有被执行,那么什么是最“pythonic”的方式呢?
答案 0 :(得分:4)
在我看来,你应该只使用条件表达式:
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
答案 1 :(得分:0)
myDict = None
get_myDict = lambda: myDict or {}
get_myDict()
返回一个空字典。
答案 2 :(得分:0)
您也可以使用locals().get('myDict', None)
(或globals().get
,具体取决于您的范围)