2017-06-15 17 views
0

私はのpython3の辞書を作成していた辞書で行方不明のキーを継承(パイソン)

parents = { 
    'parent_0': { 
     'f_name': 'john', 
     'l_name': 'doe', 
     'location': 'New York, NY', 
     'birth_month': 'september', 
     'nationality': 'france', 
     }, 
    'parent_1': { 
     'f_name': 'jane', 
     'l_name': '', 
     'location': '', 
     'birth_month': 'may', 
     'nationality': '' 
    }, 

} 

はどのようにparent_0からL_NAME、場所や国籍のキー値を継承parent_1ことができますか?

+0

これは具体的なケースですか?または大きな問題の一部ですか? –

+3

これを行うには多くの方法があります。あなたが解決している問題についてもっと分かち合うことは、おそらくもっと良い答えにつながるでしょう。 –

+0

https://docs.python.org/3/library/collections.html#collections.ChainMap –

答えて

2
for key, value in parents['parent_1'].items(): 
    if not value: 
     parents['parent_1'][key] = parents['parent_0'][key] 
1
for key in parents['parent_1'].keys: 
    if parents['parent_1'] == '': 
     parents['parent_1'][key] = parents['parent_0'][key] 
+0

これにより、parent_1が独自の値を持っていてもparent_1の値が継承されます。 –

+0

それは望ましくないという質問から確かですか?希望の出力が何であるかはわかりません。 –

+1

"_親は、l_name、場所、国籍のキー値をparent_0から継承する方法は?_" OPはそれらのキーだけを述べています... –

0

ここ.update()を使用して1つのライナーです:

parents['parent_1'].update({ k : v for k, v in parents['parent_0'].items() if not parents['parent_1'][k] }) 

は​​はエントリがないそのため、これらのエントリを更新します。

関連する問題