gpt4 book ai didi

python - 从文本文件解析为图形(python)

转载 作者:太空狗 更新时间:2023-10-30 01:30:11 25 4
gpt4 key购买 nike

我无法弄清楚如何在 Python 中将文本文件解析为图形。文件格式如下:

4 4 
o . o . o . o
- - . -
o . o . o | o
. - . .
o | o . o . o
. - . -
o . o . o . o

顶部的整数是维度(行、列)。我需要考虑每个字符之间的空格。这假设代表一个迷宫,我必须对其进行搜索以确定给定起点和终点的最佳路径。那部分我已经想通了。我只是需要帮助将此文本文件解析为图表,以便我可以运行搜索。

最佳答案

这个函数解析一个像你给的那样的网格到一组节点(存储为原始网格中的一对坐标)和一个边缘字典(将每个节点映射到相邻节点列表到它)。这是一个非常易于使用的图形表示,使用它编写迷宫搜索代码应该没有问题。该代码使用的想法是,迷宫的结构仅由边缘(- 和 |)描述,并且网格是水平和垂直双线间隔的。没有边进出的正方形不会出现在图中。

import collections

def parse_grid(grid):
edges = collections.defaultdict(list)
for i in xrange(len(grid)):
for j in xrange(len(grid[i])):
if grid[i][j] == '-':
edges[i, j - 2].append((i, j + 2))
edges[i, j + 2].append((i, j - 2))
if grid[i][j] == '|':
edges[i - 2, j].append((i + 2,j))
edges[i + 2, j].append((i - 2,j))
nodes = set()
for e in edges.iterkeys():
nodes.add(e)
return nodes, edges

grid = """\
o . o . o . o
- - . -
o . o . o | o
. - . .
o | o . o . o
. - . -
o . o . o . o"""
print parse_grid(grid.split('\n'))

关于python - 从文本文件解析为图形(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8459434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com