提问人:Shivasiddharth Narayanan 提问时间:2/9/2023 最后编辑:Kelly BundyShivasiddharth Narayanan 更新时间:2/9/2023 访问量:67
如何从列表嵌套词典形成词典列表?
How to form a list of dictionaries from a list nested dictionary?
问:
如何从列表嵌套词典中形成词典列表?
输入
ip = {'Science' : [88, 89], 'Arts' : [77, 78] }
预期输出
op = [{'Science' : 88, 'Arts' : 77}, {'Science' : 89, 'Arts' : 78}]
尝试了以下方法:
op = []
for i, j in zip(ip.keys(), ip.values()):
op.append({i:j[0]})
op.append({i:j[1]})
print(op)
我的结果:
[{'Science': 88}, {'Science': 89}, {'Arts': 77}, {'Arts': 78}]
答:
1赞
Epsi95
2/9/2023
#1
您可以尝试列表推导
[{k:ip[k][i] for k in ip.keys()} for i in range(len(list(ip.values())[0]))]
[{'Science': 88, 'Arts': 77}, {'Science': 89, 'Arts': 78}]
评论
1赞
Gameplay
2/9/2023
只是不要命名任何变量,因为它是一个内置函数,迟早会导致难以发现错误input
0赞
Epsi95
2/9/2023
没错,只是想保持与 OP 相同的名称
0赞
Gameplay
2/9/2023
不是故意挑剔的。我认为值得一提的是,如果你注意到(即使它与问题没有直接关系),有时它是如此超出范围,人们只能表明问题存在(并可能分享一些资源的链接),有时它是次要的,可以立即改进。干杯!
2赞
Kelly Bundy
2/9/2023
#2
压缩列表以获得相应的值,使用键压缩它们以构建字典。
op = [dict(zip(ip, vs))
for vs in zip(*ip.values())]
评论