根据条件返回字典

时间:2013-04-30 13:33:57

标签: python lambda

我正在尝试使用lambda或其他python功能在条件满足时返回字典,否则返回否。

myDict = None

myDict = lambda c: {} if not myDict else myDict

显然,这不起作用,因为lambda没有被执行,那么什么是最“pythonic”的方式呢?

3 个答案:

答案 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,具体取决于您的范围)