0
最初にアクセスするキーがわからないときに、ネストされた辞書キーにアクセスする簡単な方法はありますか?例えばPython:ネストされた辞書キーに動的にアクセスしますか?
:私はlabel
キーまたはconfig
キーを介してアクセス可能な他の辞書内のvalue
キーのいずれかにアクセスする必要があります。この辞書で
dct = {'label': 'A', 'config': {'value': 'val1'}}
。
状態によって異なります。例えば
我々はlabel
と呼ばれる変数、そうであれば持っている場合:簡単にこのケースで
label = True
if label:
key = 'label'
その種:
今dct[key]
をラベルが虚偽であると私は、ネストされた辞書にアクセスする必要がある場合どのように私は動的に指定することができますので、すべての反復項目でifsを使用する必要はありません。の代わりにlabel
が使用されているかどうかを毎回チェックします。辞書)?
のような:
label = False
if label:
key = 'label'
else:
key = 'config..?' # it should be something like ['config']['value']
あなたは自分の辞書クラスを記述し、 '' dictの[ 'config.value'] 'で動作するように__getitem__'メソッドを上書きすることができます - http://stackoverflow.com/questions/2390827/how-to-properly- subclass-dict-override-getitem-setitem – furas
または 'key'を関数にするだけです。 'key = lambda d:d ['config'] ['value']'。 – kennytm
@kennytm実際には簡単には機能しません。なぜなら、関数として扱うからです。問題を解決しない 'dct [key(dct)]'のようなメソッドを呼び出すことを期待しています。そのキーを別の方法で呼び出す – Andrius