Split dictionary of lists into list of dictionaries

前端 未结 8 1809
时光取名叫无心
时光取名叫无心 2020-12-09 21:16

What i need to do is to convert something like this

{\'key1\': [1, 2, 3], \'key2\': [4, 5, 6]}

into

[{\'key1\': 1, \'key2\'         


        
相关标签:
8条回答
  • 2020-12-09 21:45
    >>> a = {'key1': [1, 2, 3], 'key2': [4, 5, 6]}
    >>> [dict((key, a[key][i]) for key in a.keys()) for i in range(len(a.values()[0]))]
    [{'key2': 4, 'key1': 1}, {'key2': 5, 'key1': 2}, {'key2': 6, 'key1': 3}]
    
    0 讨论(0)
  • 2020-12-09 21:47
    d = {'key1': [1, 2, 3], 'key2': [4, 5, 6]}
    
    keys = d.keys()
    vals = zip(*[d[k] for k in keys])
    l = [dict(zip(keys, v)) for v in vals]
    print l
    

    produces

    [{'key2': 4, 'key1': 1}, {'key2': 5, 'key1': 2}, {'key2': 6, 'key1': 3}]
    
    0 讨论(0)
提交回复
热议问题