在python中,如何从字典中的一对(父、子)恢复路径?

在python中,如何从字典中的一对(父、子)恢复路径?,python,dictionary,breadth-first-search,Python,Dictionary,Breadth First Search,我有一本字典key:set 键是一个带有字符串的子节点,其值是一个集合包含其父节点的字符串 比如说 startnode = "hit" endnode = "cog" mydict = {'hot': {'hit'}, 'dot': {'hot'}, 'lot': {'hot'}, 'dog': {'dot'}, 'log': {'lot'}, 'cog': {'dog', 'log'}} 'cog':{'dog','log'}:表示dog和log都指向子节点cog 如何从任

我有一本字典
key:set

是一个带有字符串的子节点,其
是一个
集合
包含其父节点的字符串

比如说

startnode = "hit"
endnode = "cog"
mydict =  {'hot': {'hit'}, 'dot': {'hot'}, 'lot': {'hot'}, 
       'dog': {'dot'}, 'log': {'lot'}, 'cog': {'dog', 'log'}}
'cog':{'dog','log'}
:表示
dog
log
都指向子节点
cog

如何从任意两个节点恢复所有可能的路径

在本例中,结果将是

res = [["hit","hot","dot","dog","cog"],
       ["hit","hot","lot","log","cog"]]

我尝试使用
循环
,但我失败了,因为每个孩子都可以有
任意的
家长。有什么想法吗?

首先创建一个字典,以便键是父项,值是键的子项。然后运行任何路径查找算法(
bfs
dfs
)以查找所有可能的路径

要根据现有内容创建词典,请执行以下操作:

从集合导入defaultdict
邻接=默认DICT(集合)
对于mydict中的密钥:
对于mydict[key]中的节点:
邻接[节点]。添加(键)
结果是:

defaultdict(set,
            {'dog': {'cog'},
             'dot': {'dog'},
             'hit': {'hot'},
             'hot': {'dot', 'lot'},
             'log': {'cog'},
             'lot': {'log'}})

您可以阅读这篇文章来解释和实现python中的bfs和dfs。

是否可以像my
res
中那样返回两个路径?