来自可能未初始化的变量的字典

时间:2013-06-06 15:12:39

标签: python

我想创建字典,而我不知道是否初始化了这个字典中用作值的变量。

我可以做一个简化的例子:

x = 1
y = 3
z = None

所以我考虑了三个变量,但我不知道是否所有变量都已初始化(在这种情况下只有x和y被初始化)并且我想创建字典,在这种情况下应该看起来像:

d = {'x': 1, 'y': 3}

我怀疑有一个很好的Python片段可以优雅地制作这个字典,不像我现在的代码,我甚至不想表现。

1 个答案:

答案 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}