繁体   English   中英

将嵌套的dicts转换为python中的列表?

[英]Convert nested dicts to list in python?

在python我有一个dict如下:

{'name':{0:'tom',1:'dav'}, 'age':{0:22,1:23}}

我想改变它:

[{'name':'tom','age':22}, {'name':'dav','age':23}]

你能用最简单的方法回答这个问题吗?

这样的事怎么样?

>>> d = {'name':{0:'tom',1:'dav'}, 'age':{0:22,1:23}}
>>> values = zip(*[value.values() for value in d.values()])
>>> l = [{'name': name, 'age': age} for name, age in values]
>>> l
[{'name': 'tom', 'age': 22}, {'name': 'dav', 'age': 23}]

[value.values() for value in d.values()]返回[['tom', 'dav'], [22, 23]]这是你的subdicts的值,然后, zip()返回[('tom', 22), ('dav', 23)]

然后,我们使用for循环在压缩值,并把该值放入类型的字典中l

一行中的另一个变体:

a = {'name':{0:'tom',1:'dav'}, 'age':{0:22,1:23}}
[ dict(zip(*(a.keys(),y))) for y in zip(*(x.values() for x in a.values())) ]

另一个在一行;)

age,name = {'name':{0:'tom',1:'dav'}, 'age':{0:22,1:23}}.values()
print [{'name': name[inx],'age':age[inx]} for inx in age]
[{'age': 22, 'name': 'tom'}, {'age': 23, 'name': 'dav'}]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM