2017-06-29 12 views
-2

私の入れ子になった辞書の要素を見つけたいと思います。私が欲しい要素は辞書でもあります。私の発電機によるPythonでネストされたdictの要素(dict)を見つける方法

nest_dict = {"a":{"b":{"c":{the dict i want} } } } 

Iループ:これは私のdictionnaryが

def find(key, dictionary): 
    for k, v in dictionary.items(): 
     if k == key: 
      yield v 
     elif isinstance(v, dict): 
      for result in find(key, v): 
       yield result 

です:私は、再帰を使用するこの機能を試してみてください

for my_element in find('c', nest_dict): 
    print(my_element) 

問題は、私がmy_elementを印刷するときそれは、各要素だけでなく、1要素のdictにのnest_dictのすべての内容を含んでいますそれのent。

Thx。

PS:@Ashwini Chaudharyさんが言及して@BoboDarph辞書の構文は、あなたが次の操作を行うことができます求めているものを行うことは有効ではありませんように、すべての私の英語

+3

にも有効なのdictの構文ではありません。 –

+1

あなたの例のdictとあなたのコードのための悪い構文を無視して、望みの入れ子にされた辞書を得る最も簡単な方法はそれに3回getを適用することです。あなたの単純なケースでは、キー "c"に関連した辞書がnested_dict.get( 'a')。get( 'b')。get( 'c')のようにする必要があると仮定すると、 – BoboDarph

+0

私。あなたが得ているアウトプットとあなたが期待したアウトプットを私たちに見せてもらえますか? –

答えて

0

まず申し訳ありません:

nest_dict = {"a":{"b":{"c":'the dict i want' } } } 

print nest_dict['a']['b']['c'] 

出力:

the dict i want 
+1

これがうまくいく場合は、回答を受け入れてください。 –

関連する問題