python - 如何从列表的字典创建字典的列表

标签 python

我有字典:

D = {'a': ['1a', '2a', '3a'], 'c': ['1c', '2c', '3c'], 'b': ['1b', '2b', '3b']}

我想将 D 转换为 dictlist:

L = [{'a':'1a', 'b': '1b', 'c': '1c'}, {'a':'2a', 'b': '2b', 'c': '2c'}, ...]

我尝试过:

>>> l = [(k, v) for k, vals in D.items() for v in vals]
>>> map(dict, zip(*zip(*[iter(l)]*4)))
[{'a': '1a', 'c': '1c', 'b': '1b'}, {'a': '2a', 'c': '2c', 'b': '2b'}, ...

我需要更具可读性的解决方案。

最佳答案

这个怎么样:

L = [dict(zip(D.keys(), vals)) for vals in zip(*D.values())]

输出:

>>> print L
[{'a': '1a', 'c': '1c', 'b': '1b'}, 
 {'a': '2a', 'c': '2c', 'b': '2b'}, 
 {'a': '3a', 'c': '3c', 'b': '3b'}]

关于python - 如何从列表的字典创建字典的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25200766/

相关文章:

python - 数组中3个整数的最大乘积

Python 循环使用索引号作为键名的一部分

python - Pandas dataframe : merge three dataframes by two columns, 忽略大多数列?

python - "Include"工作异常

python - 提高性能(矢量化?)pandas.groupby.aggregate

python - Psycopg2 不提交更改

python - 看起来像 b'\x1f\x8b\.....' 的文件格式到底是什么

python - 从两个不同的列中获取 id 值的滚动总和?

python - 在 flask 中存储 mysql 服务器凭据的安全方法?

python - 什么是切片集合的pythononic方法?