搜索字典以获取每个键的完整路径

1 投票
1 回答
903 浏览
提问于 2025-04-17 17:09

我正在尝试为字典中的每个键构建一个完整的路径。

这个字典的键都是独一无二的,但值可以重复。

mydict = {'12345': '11', '45678': '11', '11': '2', '2': '6', '6': '6', '789': '2'}

我想做的是获取每个键的完整路径,直到键等于值为止,输出的结果应该像这样:

12345, 11, 2, 6

45678, 11, 2, 6

11, 2, 6

2, 6

6

789, 2, 6

我可以先查一次字典来获取第一个值,但我不知道如何把这个值作为下一个键来查找,并保持所有的关联关系正确。这个字典里的键都是数字,并且是按数字顺序排列的。

1 个回答

2

这样做就可以了:

In [53]: mydict = {'12345': '11', '45678': '11', '11': '2', '2': '6', '6': '6', '789': '2'}

In [54]: answer = []

In [55]: for key in mydict:
   ....:     path = [key]
   ....:     while mydict[key] != key:
   ....:         key = mydict[key]
   ....:         path.append(key)
   ....:     answer.append(path)
   ....:     

In [56]: answer
Out[56]: 
[['11', '2', '6'],
 ['789', '2', '6'],
 ['45678', '11', '2', '6'],
 ['2', '6'],
 ['6'],
 ['12345', '11', '2', '6']]

撰写回答