原文: https://pythonspot.com/python-graph/

介绍

数学和计算机科学中的图由节点组成,这些节点可以相互连接,也可以不相互连接。 节点之间的连接称为边。图可以是有向的(箭头)或无向的。 边可以表示距离或重量。

Python 图 - 图1

默认图(左),有向图(右)

Python 没有图数据类型。 要使用图,我们可以使用模块,也可以自己实现:

  • 自己实现图

  • networkx模块

Python 中的图

有向图可以定义为:

  1. #!/usr/bin/env python
  2. graph = {'A': ['B', 'C'],
  3. 'B': ['C', 'A'],
  4. 'C': ['D'],
  5. 'D': ['A']}
  6. print(graph)

使用networkx的图

networkx软件模块支持创建,处理图。

  1. #!/usr/bin/env python
  2. import networkx as nx
  3. G=nx.Graph()
  4. G.add_node("A")
  5. G.add_node("B")
  6. G.add_node("C")
  7. G.add_edge("A","B")
  8. G.add_edge("B","C")
  9. G.add_edge("C","A")
  10. print("Nodes: " + str(G.nodes()))
  11. print("Edges: " + str(G.edges()))

结果:

  1. Nodes: [‘A’, C’, B’]
  2. Edges: [(‘A’, C’), (‘A’, B’), (‘C’, B’)]