[英]Nested list comprehension from a nested dictionary
我正在尝试编写嵌套列表推导,以从主词典和子列表中获取嵌套列表A。 不知道我是否解释正确...
我有:
master_d = {'d0': {'p': [1], 'q': [2]}, 'd1': {'p': [2], 'q': [5]}}
coefs = ['p', 'q']
试图得到
A = [[1,2],[2,5]]
我可以用
print(master_d['d0']['p'][0])
我敢肯定,可以通过列表理解来做到这一点,但是我一直在努力将列表A排成一行。
您可以使用嵌套列表理解:
[[i for l in d.values() for i in l] for d in master_d.values()]
返回:
[[1, 2], [2, 5]]
如果您使用熊猫,则可以在python 2中执行类似的操作。在python 3中,您将需要使用list
来转换map
。
import pandas as pd
df = pd.DataFrame(master_d)
map(lambda z: reduce(lambda y, x: y + x, df[z], []), df)
[ sum([ v[c] for v in master_d.values() ], []) for c in coefs ]
或使用纯粹的列表理解
[ [ x for l in [ v[c] for v in master_d.values() ] for x in l ] for c in coefs ]
您可以使用reduce
来连接dict
元素内的所有值:
from functools import reduce
from operator import add
A=[reduce(add, d.values()) for d in master_d.values()]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.