2017-06-14 6 views
1

eine Python-Liste Wörterbuch von Schlüssel-Wert Bei Paaren, dhBaukonstruktion Tupels von Wörterbuch-Werten

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

Wie eine Liste von Tupeln aus den Wörterbuchwerte nur konstruieren:

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

'[tuple (d.values ​​()) für d in Daten]' Note um nicht – AChampion

Antwort

6

So einfach wie es nur geht:

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

Sie könnten hast du das selbst gemacht, oder?

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

Wörterbuch garantiert Schlüsselreihenfolge ist (noch) nicht garantiert, nicht einmal in Python 3.6. – L3viathan

+0

@ L3viathan OP hat nicht angegeben, dass sie in Ordnung sein müssen. –

2

Wenn wichtig ist, dann:

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

Oder:

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

Else ungeordnet Garantien oder von einer OrderedDict (oder sich auf Py3.6verlassen):

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

für dynamische Liste der Wörterbücher

Dies ist, was ich mit in diesem Fall gehen würde, ich hoffe, ich habe von Hilfe.

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

Natürlich gibt es eine Einzeiler Option wie diese unter:

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