查找路径并从字典转换为列表
find path and convert from dictionary to list
我将 networkx 库用于 Python 与 BFS 和 DFS。我需要得到一棵树,然后探索它以获得从起始节点到结束节点的路径。
对于 BFS 部分,我正在使用 bfs_successors
它 returns 来自源的广度优先搜索中的后继迭代器。
对于 DFS 部分,我使用的是:dfs_successors
并且它 returns 来自源的深度优先搜索的后继者字典。
我需要从这两种算法中获取从源到端的节点列表。每个节点都是 (x, y) 并且是网格中的一个单元格。
这是我到目前为止所做的:
BFS = nx.bfs_successors(mazePRIM, start)
print(dict(BFS))
DFS = nx.dfs_successors(mazePRIM, start)
print(DFS)
我明白了:
{(0, 0): [(0, 1), (1, 0)], (1, 0): [(1, 1)], (1, 1): [(1, 2)], (1, 2): [(0, 2), (1, 3)], (0, 2): [(0, 3)]}
{(0, 0): [(0, 1), (1, 0)], (1, 0): [(1, 1)], (1, 1): [(1, 2)], (1, 2): [(0, 2), (1, 3)], (0, 2): [(0, 3)]}
但我需要这样的输出:
[(0, 0), (1, 0), (1, 1), (1, 2), (1, 3)]
这是从头到尾的节点列表。
你对如何做有什么建议吗?你能帮帮我吗?
使用列表理解并暗示将 .keys()
添加到字典的末尾:
DFS = nx.bfs_successors(mazePRIM,start)
print([n for n in dict(BFS).keys()])
DFS = nx.dfs_successors(mazePRIM, start)
print([n for n in DFS.keys()])
您可以在此处阅读有关字典键的更多信息:
How to return dictionary keys as a list in Python?
您可以简单地将字典键直接转换为列表:
DFS = nx.bfs_successors(mazePRIM,start)
print(list(dict(BFS).keys()))
DFS = nx.dfs_successors(mazePRIM, start)
print(list(dict(DFS).keys()))
我将 networkx 库用于 Python 与 BFS 和 DFS。我需要得到一棵树,然后探索它以获得从起始节点到结束节点的路径。
对于 BFS 部分,我正在使用 bfs_successors
它 returns 来自源的广度优先搜索中的后继迭代器。
对于 DFS 部分,我使用的是:dfs_successors
并且它 returns 来自源的深度优先搜索的后继者字典。
我需要从这两种算法中获取从源到端的节点列表。每个节点都是 (x, y) 并且是网格中的一个单元格。
这是我到目前为止所做的:
BFS = nx.bfs_successors(mazePRIM, start)
print(dict(BFS))
DFS = nx.dfs_successors(mazePRIM, start)
print(DFS)
我明白了:
{(0, 0): [(0, 1), (1, 0)], (1, 0): [(1, 1)], (1, 1): [(1, 2)], (1, 2): [(0, 2), (1, 3)], (0, 2): [(0, 3)]}
{(0, 0): [(0, 1), (1, 0)], (1, 0): [(1, 1)], (1, 1): [(1, 2)], (1, 2): [(0, 2), (1, 3)], (0, 2): [(0, 3)]}
但我需要这样的输出:
[(0, 0), (1, 0), (1, 1), (1, 2), (1, 3)]
这是从头到尾的节点列表。
你对如何做有什么建议吗?你能帮帮我吗?
使用列表理解并暗示将 .keys()
添加到字典的末尾:
DFS = nx.bfs_successors(mazePRIM,start)
print([n for n in dict(BFS).keys()])
DFS = nx.dfs_successors(mazePRIM, start)
print([n for n in DFS.keys()])
您可以在此处阅读有关字典键的更多信息:
How to return dictionary keys as a list in Python?
您可以简单地将字典键直接转换为列表:
DFS = nx.bfs_successors(mazePRIM,start)
print(list(dict(BFS).keys()))
DFS = nx.dfs_successors(mazePRIM, start)
print(list(dict(DFS).keys()))