0

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

myDict = None

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

显然,这行不通,因为没有执行 lambda,所以最“pythonic”的方法是什么?

4

3 回答 3

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
于 2013-04-30T13:36:19.320 回答
0
myDict = None
get_myDict = lambda: myDict or {}

get_myDict()

返回一个空字典。

于 2013-04-30T13:38:21.610 回答
0

您也可以使用locals().get('myDict', None)(或globals().get取决于您的范围)

于 2013-04-30T13:51:48.653 回答