[英]single list comprehension to unpack nested dictionary
我想转过来
a = {'a': {'b': 'b aw', 'c': 'c aw'}, 'b': {'b': 'b2 aw', 'c': 'c2 aw'}, 'c': {}}
进入这个
['b aw', 'c aw', 'b2 aw', 'c2 aw']
列表理解。 我想我需要一些方法来使这个表达“合法”:
a2 = [a1 for a1 in a.values().values()]
我不想要dict(a.values)
因为那只会让我回到原来的字典,a。 我知道有很多方法可以用for循环来做到这一点,但有没有办法在没有for循环的情况下做到这一点? 谢谢。
你需要循环你的dict值的值:
>>> [i for j in a.values() for i in j.values()]
['c aw', 'b aw', 'c2 aw', 'b2 aw']
使原始values
表达的方法
[a1 for a1 in a.values().values()]
合法,就像这样:
import itertools
itertools.chain.from_iterable([v.values() for v in a.values()])
说明:内部列表是列表列表 - 与每个值对应的值。 itertools.chain.from_iterable
使它变平。
你可以这样做:
a = {'a': {'b': 'b aw', 'c': 'c aw'}, 'b': {'b': 'b2 aw', 'c': 'c2 aw'}, 'c': {}}
a2 = [a1 for a1 in a.values()]
a3 = [a3.values() for a3 in a2]
a3.sort()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.