2017-02-20 10 views
-3

di = {'dog': 'A'、 'cat': 'A'}のような値を持つキーを組み合わせようとしています辞書の複数のキーに対応する値

{「A」:[「犬」、「猫」]}になるための

私は辞書には問題を逆にすることはできませんが、キーを結合する方法をコーディングするように見えることはできません。誰にも何か提案はありますか?ありがとう!

+0

2つのキーが割り当てられている値を作成したい場合は、辞書のポイントがありません。あなたがそれをしようとしているならば、その価値を最初の鍵とすることがより理にかなっています。値に値が必要と思われる場合は、階層があるツリーを使用します。 –

+0

私はそれよりも簡単で、Pythonにまったく新しいものを求めていると思いますが、おそらく私ははっきりと質問していません。私が同じ価値を持つ複数の鍵を持っているなら、私がしようとしているのはそれらをまとめてグループ化することです。キーを値にしなければならないのですか? –

答えて

0

これは私がコードとして持っているもので、キーと値を逆にしていますが、同じ値を持つキーはすべて削除されています。すべてのキーと値を保持する簡単な方法はありますか?

for k, v in dict1.items(): 
    for k, v in sorted(dict1.items(), key = lambda (k, v): k): 
     dict2[v] = k 



return dict2 
+0

実際には、私のコードのいくつかが冗長であることがわかります。私はラインのために最初を取り出した。私はまだキーと値が反転されている辞書から同じ答えを得ていますが、両方とも同じ元の値を持つため、キー値のペアのいずれかが削除されます –

+0

forループ、キーと値の反転、追加を使用します。 –

関連する問題