2

我想创建字典,但我不知道该字典中用作值的某些变量是否已初始化。

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

x = 1
y = 3
z = None

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

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

我怀疑有一个很好的 Python 代码片段可以优雅地制作这个字典,这与我当前的代码不同,我什至不想展示它。

4

1 回答 1

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}
于 2013-06-06T15:14:50.957 回答