2017-06-14 55 views
1

鑑於蟒的鍵值字典的名單對即構建元組值

[{'color': 'red', 'value': 'high'}, {'color': 'yellow', 'value': 'low'}] 

如何僅從字典值構造元組的列表:

[('red', 'high'), ('yellow', 'low')] 
+4

'[元組(d.values()),用於在d數據]'音符順序並不保證 – AChampion

回答

6

這麼簡單,因爲它得到:

result = [(d['color'], d['value']) for d in dictionarylist] 
-2

你可以你自己做過,不是嗎?

a = [{'color': 'red', 'value': 'high'}, {'color': 'yellow', 'value': 'low'}] 
b = [tuple(sub.values()) for sub in a] # [('red', 'high'), ('yellow', 'low')] 
+0

字典關鍵順序不能保證(還),甚至在Python 3.6中也沒有。 – L3viathan

+0

@ L3viathan OP沒有指明他們必須按順序。 –

2

如果順序很重要,那麼:

[tuple(d[k] for k in ['color', 'value']) for d in data] 

或者:

[(d['color'], d['value']) for d in data] 

否則沒有秩序的保證,或從OrderedDict (或依靠Py3.6 dict):

[tuple(d.values()) for d in data] 
0

對於動態列表的字典

這是我會在這種情況下,我希望我已經幫助去。

tuple_list = [] 
for li_item in list_dict: 
    for k, v in li_item.items(): 
     tuple_list.append((k,v)) 

當然有象下面這一個一個襯裏選項:

tupples = [ 
    [(k,v) for k, v in li_item.items()][0:] for li_item in list_dict 
]