我想转换这个dicts列表:
input_list = [
{'a': 5,'b': 7},
{'a': 3,'b': 4},
]
Run Code Online (Sandbox Code Playgroud)
对此:
result_dict = {
'a': [5, 3],
'b': [7, 4]
}
Run Code Online (Sandbox Code Playgroud)
我莫名其妙地无法做到这一点.
请有人帮助我.
result = {}
for subdic in data:
for k, v in subdic.items():
result.setdefault(k, []).append(v)
Run Code Online (Sandbox Code Playgroud)
在这里,我们遍历项目,我们在result字典中添加一个空列表,以防密钥尚未出现在字典中.无论是否已有列表,我们都会附加v到该列表中.
defaultdict我们可以使其更加优雅利用defaultdict来自collections:
from collections import defaultdict
result = defaultdict(list)
for subdic in data:
for k, v in subdic.items():
result[k].append(v)
Run Code Online (Sandbox Code Playgroud)
在这里,我们基本上做了抽象setdefault(我们还节省了构建无用的空列表).如果输出应该是dict(而不是a defaultdict),我们可以用以下结束函数:
result = dict(result)
Run Code Online (Sandbox Code Playgroud)
pandas如果每个字典包含相同的键,我们可以使用pandas:
from pandas import DataFrame
result = DataFrame(data).to_dict(orient='list')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |