List and Dictionary functions can help here ...
Considering
In [72]: root_values Out[72]: [{'name': 'red', 'value': 2}, {'name': 'red', 'value': 3}, {'name': 'red', 'value': 2}, {'name': 'green', 'value': 7}, {'name': 'green', 'value': 8}, {'name': 'green', 'value': 9}, {'name': 'blue', 'value': 4}, {'name': 'blue', 'value': 4}, {'name': 'blue', 'value': 4}]
A function like item() shown below can retrieve values โโwith specific names:
In [75]: def item(x): return [m['value'] for m in root_values if m['name']==x] In [76]: item('red') Out[76]: [2, 3, 2]
Then it's just a matter of understanding the dictionary ...
In [77]: {x:item(x) for x in ['red', 'green', 'blue'] } Out[77]: {'blue': [4, 4, 4], 'green': [7, 8, 9], 'red': [2, 3, 2]}