繁体   English   中英

嵌套字典中的嵌套列表理解

[英]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.

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