2014-01-29 2 views
3

В списке, содержащем словари, как его разделить на основе уникальных значений словарей? Так, например, это:Duplicate python dict для каждого значения

t = [ 
    {'name': 'xyz', 'value': ['K','L', 'M', 'N']}, 
    {'name': 'abc', 'value': ['O', 'P', 'K']} 
    ] 

становится этим:

t = [ 
    {'name': 'xyz', 'value': 'K'}, 
    {'name': 'xyz', 'value': 'L'}, 
    {'name': 'xyz', 'value': 'M'}, 
    {'name': 'xyz', 'value': 'N'}, 
    {'name': 'abc', 'value': 'O'}, 
    {'name': 'xyz', 'value': 'P'}, 
    {'name': 'xyz', 'value': 'K'} 
    ] 

ответ

5

Вы можете сделать это с помощью списка понимания. Перебрать каждый словарь d и создать новый словарь для каждого значения в d['values']:

>>> t = [ dict(name=d['name'], value=v) for d in t for v in d['value'] ] 
>>> t 
[{'name': 'xyz', 'value': 'K'}, 
{'name': 'xyz', 'value': 'L'}, 
{'name': 'xyz', 'value': 'M'}, 
{'name': 'xyz', 'value': 'N'}, 
{'name': 'abc', 'value': 'O'}, 
{'name': 'abc', 'value': 'P'}, 
{'name': 'abc', 'value': 'K'}] 
+0

РЕСПЕКТ .... :-) – khan

Смежные вопросы