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