変数からの動的ディクショナリの作成
変数のイントロスペクションは、特に動的データ構造を扱う場合、Python プログラミングの貴重なツールとなります。一般的なタスクの 1 つは、変数のコレクションを対応する値を含む辞書に変換することです。 Python は変数名を文字列として取得することをネイティブにサポートしていませんが、この機能を実現するための回避策はあります。
1 つのアプローチには、現在スコープ内にあるすべてのローカル変数を格納する locals() ディクショナリを利用することが含まれます。ただし、現在のスコープ外で作成された変数は含まれないため、その使用にはいくつかの制限があります。これは、以下に示すように、手動で locals() ディクショナリを反復処理し、特定の値を持つ変数を検索することで対処できます。
a = 1 for k, v in list(locals().iteritems()): if v is a: a_as_str = k
このメソッドは、目的の変数の文字列名を返し、それを使用できます。辞書を動的に構築するには:
my_dict = dict(bar=bar, foo=foo)
このアプローチは変数セットが大きい場合は計算コストが高くなる可能性があり、常に有効であるとは限らないことに注意することが重要です。最も単純な解決策になります。ただし、動的な辞書の作成が必要な状況では、実行可能なオプションが提供されます。
以上が変数から Python 辞書を動的に作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。