边、顶点和图的 Python 实现
项目描述
边、顶点和图的 Python 实现
利用
每个对象有两种类型:Undirected和Directed。
首先,导入图形类之一:
from graphpy.graph import UndirectedGraph
并从顶点值字典创建一个图:
# graph with vertices 'v0' and 'v1', with an edge between them g = UndirectedGraph.from_dict({'v0': [('v1',)], 'v1': []})
或从顶点列表和边列表:
g = UndirectedGraph.from_lists([('v0',), ('v1',)], [('v0', 'v1')])
您还可以初始化一个图,然后添加顶点和边:
g = UndirectedGraph() g.add_vertex('v0') g.add_vertex('v1') g.add_edge(('v0', 'v1'))
顶点的 val 可以是任何可散列的对象,如字符串、int、元组等:
# graph with vertices 'v0', 1, and (2, 2), with some edges g = UndirectedGraph.from_dict({'v0': [(1,)], 1: [('v0',), ((2, 2),)], (2, 2): [(1,)]})
检索顶点和边对象:
# v is an UndirectedVertex object, and e is an UndirectedEdge object v = g.get_vertex('v0') print v.degree e = g.get_edge(('v0', 'v1')) print e.vertices
遍历图的顶点:
for v in g: print v
执行图算法,例如搜索:
paths = g.search(start='v0', method='depth_first') print paths
使用具有您想要的任何属性(例如,边权重)的顶点和边创建图形:
g = UndirectedGraph.from_lists([('v0', {'city': 'Paris'}), ('v1', {'city': 'London'})], [('v0', 'v1', {'weight': 5})])
>从那里,使用图表来模拟情况,实现更多的图表算法,以及任何你想要的。而且,一如既往,玩得开心!
(在https://github.com/tscizzle/graphpy/tree/master/tests在 Github 上找到的测试提供了更多示例并展示了库的其余功能。)
文档
在以下位置查找完整文档: http: //graphpy.readthedocs.org/en/latest
安装
如果您没有 pip,请在以下位置获取 pip:https ://pip.pypa.io/en/stable/installing
在终端中运行命令pip install graphpy以获取 graphpy 库。
要测试您的安装,请在终端中使用python命令启动 Python 解释器,并确保您可以在其中运行import graphpy而不会出现错误。
贡献
在 Github 上找到代码:https ://github.com/tscizzle/graphpy
支持
通过tscizzle @ gmail联系我(Tyler Singer-Clark)。com有任何问题或疑虑。
执照
该项目在 MIT 许可下获得许可。