【发布时间】:2017-03-23 21:33:07
【问题描述】:
如果帖子看起来多余,请见谅。我浏览了一堆其他帖子,但似乎找不到我要找的东西——也许公元前我是一个尝试编写基本代码的 python 新手......
给定一个任意大小的字典:一些键只有一个值,其他键有一个嵌套字典作为它的值。
我想将字典转换为一个列表(包括作为列表项的嵌套值),但按特定顺序。
例如:
d = {'E':{'e3': 'Zzz', 'e1':'Xxx', 'e2':'Yyy'}, 'D': {'d3': 'Vvv', 'd1':'Nnn', 'd2':'Kkk'}, 'U': 'Bbb'}
我希望它看起来像这样:
order_list = ['U', 'D', 'E'] # given this order...
final_L = ['U', 'Bbb', 'D', 'd1', 'Nnn', 'd2', 'Kkk', 'd3', 'Vvv', 'E', 'e1', 'Xxx', 'e2', 'Yyy', 'e3', 'Zzz']
我可以使主键有序,但嵌套值。这是我到目前为止所拥有的......
d = {'E':{'e3': 'Zzz', 'e1':'Xxx', 'e2':'Yyy'}, 'D': {'d3': 'Vvv', 'd1':'Nnn', 'd2':'Kkk'}, 'U': 'Bbb'}
order_list = ['U', 'D', 'E']
temp_list = []
for x in order_list:
for key,value in d.items():
if key == x:
temp_list.append([key,value])
final_L = [item for sublist in temp_list for item in sublist]
print(final_L)
我目前的输出是:
['U', 'Bbb', 'D', {'d1': 'Nnn', 'd2': 'Kkk', 'd3': 'Vvv'}, 'E', {'e1': 'Xxx', 'e3': 'Zzz', 'e2': 'Yyy'}]
【问题讨论】:
标签: list python-3.x dictionary nested