2017-08-01 72 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

对不起,这是一个错字。我已经更新了答案。 –