2017-02-17 4 views
1
my_list = [ [1,2], [2,3], [3,4] ] 

# my attempt 
output = { {'a':k[0], 'b':k[1]} for k in my_list } 

#desired output 
[ {a:1, b:2}, {a:2, b:3}, {a:3,b:4} ] 

複数のキーを使ってdictを返す方法がありますか?私たちはPythonでリストの理解を呼び出す入れ子リストのdictからの返信

output = [ {'a':k[0], 'b':k[1]} for k in my_list ] 
#  ^         ^

+4

リスト。 – Psidom

答えて

5

はたぶん、あなたはこれをやってみたかったです。

3

あなたの外部構造は、あなたの出力のリストでなければなりません。あなたはリストの理解とは対照的に、のセット理解をで間違って実行しようとしています。これは、set要素はハッシュ可能でなければならず、dictsは変更可能であるため、失敗します。さらに、リスト項目を展開すると、この場合にはもう少し明確になります。 `最終的な出力であるため、リスト内包の代わりに辞書カンプ` [my_listというにkに対して{: 'B'、[0] K [1] K 'A' を}]必要

>>> [dict(a=x, b=y) for x, y in my_list] 
[{'a': 1, 'b': 2}, {'a': 2, 'b': 3}, {'a': 3, 'b': 4}] 
1
my_list = [ [1,2], [2,3], [3,4] ] 
[dict(zip(['a', 'b'], x)) for x in my_list] 
関連する問題