ラムダまたはその他の python 機能を使用して、条件が満たされた場合は辞書を返し、そうでない場合は辞書を返そうとしています。
myDict = None
myDict = lambda c: {} if not myDict else myDict
明らかに、ラムダが実行されないため、これは機能しません。そのため、最も「pythonic」な方法は何でしょうか?
条件式を使用するだけでよいように思えます。
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()
空の辞書を返します。