就我而言,我有一个随机的字典值,如下所示:
dict = {2: 1, 27: 28, 56: 28, 57: 29, 58: 29, 59: 29, 28: 29, 29: 1, 30: 1, 31: 1}
我的目标是将按其值排序的字典排序,而不是将类似的键并行排列到列表中。例如,如果我们从keys = 27开始,那么结果将是这样的:
list = [ 27, 28, 29, 1 ]
有什么想法解决这个问题,或者python是否有能力库来解决它?
答案 0 :(得分:3)
你在寻找什么似乎是根的路径,其中字典中的每个键映射到其父级。使用生成器功能可以轻松解决问题:
d = {2: 1, 27: 28, 56: 28, 57: 29, 58: 29, 59: 29, 28: 29, 29: 1, 30: 1, 31: 1}
def path_to_root(d, start):
yield start
while start in d:
start = d[start]
yield start
print list(path_to_root(d, 27))
结果:
[27, 28, 29, 1]