2024-04-20 01:50:22 发布
网友
我尝试使用lambda或其他python特性在满足条件时返回字典,如果不满足条件则返回none。你知道吗
myDict = None myDict = lambda c: {} if not myDict else myDict
显然,这是行不通的,既然lambda没有被执行,那么什么才是最“pythonic”的方法呢?你知道吗
您还可以使用locals().get('myDict', None)(或globals().get,具体取决于您的作用域)
locals().get('myDict', None)
globals().get
在我看来,你应该只使用条件表达式:
myDict = {} if not myDict else myDict
lambda是创建函数的一种方法。所以:
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()
返回一个空字典。你知道吗
您还可以使用
locals().get('myDict', None)
(或globals().get
,具体取决于您的作用域)在我看来,你应该只使用条件表达式:
lambda
是创建函数的一种方法。所以:近似等于:
因此,在您的示例中,您创建了一个函数或多或少等效于:
返回一个空字典。你知道吗
相关问题 更多 >
编程相关推荐