2017-02-17 167 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} ] 

有沒有辦法讓字典理解返回一個字典,與多個鍵?返回從字典理解嵌套列表的字典

+4

你需要一個列表理解代替字典排版'[{ 'A':K [0], 'B':K [1]}對於k在my_list]'由於最後的輸出是一個列表。 – Psidom

回答

5

也許你想做到這一點:

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

我們稱之爲列表理解Python編寫的。

3

你的外部結構應該是你的輸出列表,你被錯誤地嘗試執行一套理解,而不是一個列表理解。這會失敗,因爲set元素必須是可散列的,並且字典不是可變的。另外,在這種情況下,您可以將列表項解包得更清楚。

>>> [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]