2016-03-19 9 views
1

Ich habe eine Liste von Wörterbuch wieeine Liste mit einem Wörterbuch Anbringen

a = [{name: 'x', 'hour':35, 'unit': 500}, 
    {name: 'y', 'hour': 40, 'unit': 600}, 
    {name: 'z', 'hour': 50, 'unit': 700}, 
    {name: 'z', 'hour': 20, 'unit': 400}, 
    {name: 'x', 'hour': 40, 'unit': 500}] 

und ein zweites Wörterbuch wie

b = {'z': 200, 'y': 100, 'x': 50} 

Gibt es eine Weise, die ich so zweites Wörterbuch erstes zuweisen konnte, dass ich zur Folge haben wie

a = [{name: 'x', 'hour':35, 'unit': 500, 'b': 50}, 
    {name: 'y', 'hour': 40, 'unit': 600, 'b': 100}, 
    {name: 'z', 'hour': 50, 'unit': 700, 'b': 200}, 
    {name: 'z', 'hour': 20, 'unit': 400, 'b': 200}, 
    {name: 'x', 'hour': 40, 'unit': 500, 'b': 50}] 

oder wenigsten eine Liste

wie

produzieren könnte 210
[50, 100, 200, 200, 50] 

Antwort

4

können Sie folgende Methode verwenden:

>>> for sub in a: 
... sub['b'] = b.get(sub['name'], None) 
... 
>>> a 
[{'unit': 500, 'b': 50, 'name': 'x', 'hour': 35}, 
{'unit': 600, 'b': 100, 'name': 'y', 'hour': 40}, 
{'unit': 700, 'b': 200, 'name': 'z', 'hour': 50}, 
{'unit': 400, 'b': 200, 'name': 'z', 'hour': 20}, 
{'unit': 500, 'b': 50, 'name': 'x', 'hour': 40}] 
>>> 
0

@Kasramvd ersten Teil beantwortet. Wenn Sie den zweiten Teil wünschen,

>>> [b[i['name']] for i in a] 
[50, 100, 200, 200, 50] 
Verwandte Themen