每个值都复制python dict

时间:2014-01-29 22:51:19

标签: python dictionary

在包含词典的列表中,如何根据词典的唯一值将其拆分?例如,这个:

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'}
     ]

1 个答案:

答案 0 :(得分: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'}]