2016-04-01 3 views
1

は、私がpyhtonにこの辞書を持っていると言う:どのように素早くPythonでdictのプロパティをアップレベルですか?

{'a': {'asuba':'1','asubb':'2'},'b':{'bsuba':'1','bsubb':'2'}} 

私の結果の辞書がある「」ように、上位レベルの最も簡単な/最も簡単な方法ですが、キーを何と言う:続いupdateより

{'asuba':'1','asubb':'2','b':{'bsuba':'1','bsubb':'2'}} 
+2

鍵が競合している場合はどうしますか? –

+0

鍵の競合がないものとします。最後に取り上げられたものでオーバーライドしますか? – Rolando

答えて

7

ベターdelによって:

d.update(d.pop(k)) 

kの値が0に等しいキーが含まれている場合、これは問題を回避自体(updateの場合はdel、値のキーは親の値を上書きして、delが発生した場合は誤って削除されます)。最初にpopを入力すると、kのキーと値のペアを追加する前にkのエントリが削除されるため、競合は発生しません。

+0

これは本当に素晴らしい解決策です。あなたがポップできるかどうかは分かりませんでした。 – mwm314

+1

@ mwm314:Yar、 'dict.pop'と' dict.setdefault'はもっと知っておくべき2つのメソッドです。 (キーが組み込み型ではないにもかかわらず、 'setdefault'に対してはスレッドセーフではなく、論理的な操作にはやはり便利です)、原子の挿入と削除を行うのに非常に便利です。 – ShadowRanger

関連する問題