2016-08-02 7 views
0

2番目の列にあるキー(2番目の列)と2番目の列の値を持つ2次元[2xn]の配列です。私は、キーが一意である辞書を作成する必要があり、その値から値が収集されます。2次元リストをソートして辞書に変換する最も良い方法は

最もスマートな方法は何ですか?私は最初に事前処理(グループまたは何かの値をソート)する必要がありますか、またはset(keys)を辞書キーに入れてそこで値を操作する必要がありますか?または、keysvaluesのリストを辞書に入れて、何とか「絞る」必要がありますか?

入力:

[ 
[Isis, 3], 
[Isis, 4], 
[Al-Qaeda, 2], 
[Isis, 2] 
] 

所望の出力:

{'Isis':[3,4,2], 'Al-Qaeda':[2]} 
+0

あなたは潜在的な入力と所望の出力の例を持っていますか?あなたは何を試しましたか、何がうまくいかなかったのですか? – dashiell

答えて

2

defaultdictを使用します。

from collections import defaultdict 

output = defaultdict(list) 
for k,v in input: 
    output[k].append(v) 
0
output = {} 
for i in input: 
    key = i[0] 
    value = i[1] 
    if not key in output: 
     output[key] = [] 
    output[key].append(value) 
+0

すべての編集を申し訳ありません。私は最初のテストなしで投稿し、いくつかのタイプミスを発見しました – Checkmate

+0

私は、5行目が不要であると思っています –

+0

@VladislavLadenkov if文?これを含まなければ、値を '追加'するたびに出力[キー]に新しいリストを入れます! – Checkmate

関連する問題