基于条件返回词典

2024-04-20 01:50:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用lambda或其他python特性在满足条件时返回字典,如果不满足条件则返回none。你知道吗

myDict = None

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

显然,这是行不通的,既然lambda没有被执行,那么什么才是最“pythonic”的方法呢?你知道吗


Tags: 方法lambdanoneif字典not特性pythonic
3条回答

您还可以使用locals().get('myDict', None)(或globals().get,具体取决于您的作用域)

在我看来,你应该只使用条件表达式:

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
myDict = None
get_myDict = lambda: myDict or {}

get_myDict()

返回一个空字典。你知道吗

相关问题 更多 >