Python 基于条件返回字典

Python 基于条件返回字典,python,lambda,Python,Lambda,我尝试使用lambda或其他python特性在满足条件时返回字典,如果不满足条件则返回none myDict = None myDict = lambda c: {} if not myDict else myDict 很明显,这不起作用,因为lambda没有被执行,所以最“python”的方法是什么?在我看来,您应该只使用条件表达式: myDict = {} if not myDict else myDict lambda是一种创建函数的方法。因此: 与以下内容大致相同: def fu

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

myDict = None

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

很明显,这不起作用,因为lambda没有被执行,所以最“python”的方法是什么?

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

myDict = {} if not myDict else myDict

lambda
是一种创建函数的方法。因此:

与以下内容大致相同:

def func(x):
    return x*x
因此,在您的示例中,您创建的函数或多或少等效于:

def myDict(c):
    return {} if not myDict else myDict

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

myDict = {} if not myDict else myDict

lambda
是一种创建函数的方法。因此:

与以下内容大致相同:

def func(x):
    return x*x
因此,在您的示例中,您创建的函数或多或少等效于:

def myDict(c):
    return {} if not myDict else myDict
返回一个空字典


返回一个空字典。

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

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

空字典是
False
。是,但是我想在第一行之后更新我的dict.update(),
myDict
None
,第二行之后是lambda函数。它从来不是一本字典。我不清楚“如果有条件,我想还字典,如果没有条件,我想不还字典。”。你能解释一下吗?空的dict是
False
。是的,但我想在我的意思是myDic之后更新我的dict。更新()在第一行之后,
myDict
None
,在第二行之后是lambda函数。它从来不是一本字典。我不清楚“如果有条件,我想还字典,如果没有条件,我想不还字典。”。你能试着澄清一下吗?我认为现在条件表达式可能比逻辑
更受欢迎。(对于初学者来说,它的行为更自然一些)我认为现在条件表达式可能比逻辑
更受欢迎。(对于初学者来说,它表现得更自然一些)