2017-11-07 7 views
1

を繰り返すためのリストは私のコードです:変換リスト、ここで値

l = [['A',11],['A',12],['B',13],['B',14],['C',15],['C',16],] 
d = {} 

>>> for a in l: 
...  if a[0] in d: 
...   s = d[a[0]] 
...   s.append(a[1]) 
...   d[a[0]] = s 
...  else: 
...   d[a[0]] = [a[1]] 
... 

予想通り、私は私の辞書を取得します。

print (d) 
{'A': [11, 12], 'B': [13, 14], 'C': [15, 16]} 

これを行う簡単な方法はありますか?キーは、キーが繰り返される場合、リストのリストに2番目の要素のリストを作成することです。

+0

本当に 'collections.defaultdict' –

答えて

4

defaultdictを使用します。

from collections import defaultdict 

d = defaultdict(list) 
for k, v in l: 
    d[k].append(v) 
+0

を使うのか?なぜ外部ライブラリが必要ですか? –

+0

@cᴏʟᴅs** **外部**ライブラリはどこですか? –

+0

@cᴏʟᴅsᴘᴇᴇᴅすべての反復でリストオブジェクトを作成しないようにします。 –

関連する問題