2

ディクショナリを作成したいのですが、このディクショナリで値として使用されている変数が初期化されているかどうかわかりません。

簡単な例を作成できます:

x = 1
y = 3
z = None

したがって、考慮すべき 3 つの変数がありますが、すべてが初期化されているかどうかはわかりません (この場合、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 に答える