2017-08-01 102 views
1

我使用以下代碼創建圖形並添加節點。根據名稱選擇頂點

g = Graph() 
g.add_vertices(3) 
g.vs["name"] = ["ABC","ABCD","ACD"] 

我想從頂點名稱包含'AB'的圖中選擇頂點。從上面的圖表中,它應該返回「ABC」和「ABCD」。有沒有辦法做到這一點?

+0

'名單(過濾器(拉姆達X:返回x.startswith( 'AB'),g.vs [ 「名稱」]))'它會給你開始的節點列表AB。預期表達式爲 –

+0

。 'return'功能 –

回答

2

由於您尚未指定圖形將包含的節點數量,因此我會假設您不需要縮放。您可以使用List Comprehension

a = ["ABC","ABCD","ACD"] #List of vertices 
#or in your case a = g.vs['name'] 

b = ["AB"]    #Pattern to be matched 

match =[vert for patt in b for vert in a if patt in vert] 

print match 
#['ABC', 'ABCD'] 
+0

之外它說:未解決的參考'x' –

+0

對不起,這是一個錯字。我已經更新了答案。 –