2017-03-03 4 views
-1

辞書にリストに辞書を有効にする方法:私はこのようなリストを有効にする

[{u'host': u'node54', u'key': u'cpu_load_average_limit', u'value': 4.0}, 
{u'host': u'node54', u'key': u'ram_allocation_ratio', u'value': 4.0}, 
{u'host': u'node54', u'key': u'cpu_allocation_ratio', u'value': 4.0}, 
{u'host': u'node53', u'key': u'cpu_load_average_limit', u'value': 4.0}, 
{u'host': u'node53', u'key': u'ram_allocation_ratio', u'value': 4.0}, 
{u'host': u'node53', u'key': u'cpu_allocation_ratio', u'value': 4.0}] 

へ:

{u'node54': {u'cpu_allocation_ratio': 4.0, u'ram_allocation_ratio': 4.0, u'cpu_load_average_limit': 4.0}, 
u'node53': {u'cpu_allocation_ratio': 4.0, u'ram_allocation_ratio': 4.0, u'cpu_load_average_limit': 4.0}} 

答えて

0
entries = [ 
{u'host': u'node54', u'key': u'cpu_load_average_limit', u'value': 4.0}, 
{u'host': u'node54', u'key': u'ram_allocation_ratio', u'value': 4.0}, 
{u'host': u'node54', u'key': u'cpu_allocation_ratio', u'value': 4.0}, 
{u'host': u'node53', u'key': u'cpu_load_average_limit', u'value': 4.0}, 
{u'host': u'node53', u'key': u'ram_allocation_ratio', u'value': 4.0}, 
{u'host': u'node53', u'key': u'cpu_allocation_ratio', u'value': 4.0} 
] 

result = {} 
for entry in entries: 
    result.setdefault(entry['host'], {})[entry['key']] = entry['value'] 

assert result == {u'node54': {u'cpu_allocation_ratio': 4.0, u'ram_allocation_ratio': 4.0, u'cpu_load_average_limit': 4.0}, u'node53': {u'cpu_allocation_ratio': 4.0, u'ram_allocation_ratio': 4.0, u'cpu_load_average_limit': 4.0}} 
関連する問題