每个值都复制python dict

kha*_*han 3 python dictionary

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

t = [
     {'name': 'xyz', 'value': ['K','L', 'M', 'N']}, 
     {'name': 'abc', 'value': ['O', 'P', 'K']}
     ]
Run Code Online (Sandbox Code Playgroud)

成为这个:

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'}
     ]
Run Code Online (Sandbox Code Playgroud)

mdm*_*dml 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'}]
Run Code Online (Sandbox Code Playgroud)