2015-11-14 40 views
6

我在寫一個接收圖形作爲輸入的函數。 我需要做的第一件事就是確定圖的順序(也就是圖中頂點的數量)。我的意思是,我可以使用g.summary()(它返回一個包含頂點數的字符串),但是接下來我會解析字符串以獲得頂點的數量 - 這只是令人討厭的。如何查找由iGraph在python中創建的圖形中的頂點數?

爲了得到我使用的邊數len(g.get_edgelist()),哪個有效。但沒有g.get_vertexlist(),所以我不能使用相同的方法。

當然有一個簡單的方法可以做到這一點,不涉及解析字符串。

回答

9

g.vcount()是igraph中的一個專用函數,它返回頂點的數量。同樣,g.ecount()返回邊的數量,並且它比len(g.get_edgelist())快,因爲它不必事先構建完整的邊列表。

1

g.vs應該返回頂點的序列作爲igraph.VertexSeq對象:

>>> from igraph import Graph 
>>> g = Graph.Formula("A-B") 
>>> g.vs["name"] 
['A', 'B'] 
>>> len(g.vs) 
2 
>>> g.vcount() 
2 

編輯:正如下面@Tamas提到,g.vcount()也將返回頂點的數量。編輯示例來說明這一點。