2017-06-14 20 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 
]