在Python 2.7中将列表字典转换为字典列表

时间:2014-06-06 19:10:25

标签: python list python-2.7 dictionary dictionary-comprehension

我有这个

original = {
   "state_id": "1,2",
   "name": "A,B"
}

我可以轻松转入此

original_splitted = {k: v.split(',') for k, v in original.iteritems()}
{
   "state_id": ['1', '2'],
   "name": ['A' ,'B']
}

但我想要的是:

[
    {"state_id": '1', "name": "A"}, 
    {"state_id": '2', "name": "B"} 
]

我正在寻找一款很酷的" one-liner"理解魔术来实现这一目标(避免使用大型嵌套循环)

1 个答案:

答案 0 :(得分:4)

使用zip(*)和列表理解的2-liner怎么样:

>>> vals = zip(*(x.split(',') for x in original.itervalues()))
>>> [dict(zip(original, v)) for v in vals]
[{'state_id': '1', 'name': 'A'}, {'state_id': '2', 'name': 'B'}]