Python 圖

介紹

數學和電腦科學中的圖由“節點”組成,這些“節點”可以相互連線,也可以不相互連線。節點之間的連線稱為邊。圖可以是有方向的(箭頭)或不帶方向的。邊沿可以代表距離或重量。

預設圖(左),有向圖(右)

Python 沒有圖資料型別。要使用圖,我們可以使用模組或自己實現:

  • 自己實現圖
  • networkx 模組

Python 中的圖

有向圖可以定義為:

#!/usr/bin/env python
 
graph = {'A': ['B', 'C'],
         'B': ['C', 'A'],
         'C': ['D'],
         'D': ['A']}
 
print(graph)

使用 networkx 的圖

networkx 模組支援建立和操作圖形。

#!/usr/bin/env python
import networkx as nx
 
G=nx.Graph()
G.add_node("A")
G.add_node("B")
G.add_node("C")
G.add_edge("A","B")
G.add_edge("B","C")
G.add_edge("C","A")
 
print("Nodes: " + str(G.nodes()))
print("Edges: " + str(G.edges()))

結果:

Nodes: ['A', 'C', 'B']
Edges: [('A', 'C'), ('A', 'B'), ('C', 'B')]