我想创建字典,而我不知道是否初始化了这个字典中用作值的变量。
我可以做一个简化的例子:
x = 1
y = 3
z = None
所以我考虑了三个变量,但我不知道是否所有变量都已初始化(在这种情况下只有x和y被初始化)并且我想创建字典,在这种情况下应该看起来像:
d = {'x': 1, 'y': 3}
我怀疑有一个很好的Python片段可以优雅地制作这个字典,不像我现在的代码,我甚至不想表现。
答案 0 :(得分:3)
我对你真正想要的东西有点朦胧,但也许是这样的:
d = {k:v for k,v in locals().items() if v is not None and not k.startswith('__')}
示例:
>>> x = 1
>>> y = 3
>>> z = None
>>> d = {k:v for k,v in locals().items() if v is not None and not k.startswith('__')}
>>> d
{'y': 3, 'x': 1}