2017-04-11 7 views
-2

私は多くの重複キー辞書の1つのキーに複数の値を追加しますか?

{'key1': 'value1', 'key2': 'value2','key1': 'value3', 'key3': 'value4','key1': 'value5'......} 

を持っている辞書を持っているのpythonに新しいですしたい

{ 
"key1": [value1,value3,value5], 
"key2": [value2], 
"key3": [value4] 

}

私はそれをどのように行うことができます。このような出力?

+5

あなたがすることはできません、辞書が重複キーを持つことができないので。ディクショナリビュー(使用したリテラル構文)にリストするだけで*動作しません。指定されたキーの名前の最後の値だけを持つ辞書が残っています。 –

+0

あなたは鍵を複製することはできませんが、解決する方法はいくつかあります:http://www.wellho.net/mouth/3934_Multiple-identical-keys-in-a-Python-dict-yes-you-can- .html – Dadep

+0

私はあなたのオブジェクトがおそらくPython辞書ではないとも思っています。 (あなたは 'type(your-object-name)'からこれを得ることができますか?またはあなたのオブジェクトを印刷して生の出力を表示できますか? –

答えて

0

あなたが行うことができ、あなたが重複したキーを含むリスト/タプルからこれを達成したいと仮定すると:

from collections import defaultdict 
dupes = (('k1', 1), ('k2', 2), ('k1', 3), ('k3', 4)) 
res = defaultdict(list) 
for k,v in dupes: 
    res[k].append(v) 

print(res) 
defaultdict(<type 'list'>, {'k3': [4], 'k2': [2], 'k1': [1, 3]}) 
関連する問題