我有使用Louvain算法进行图聚类的代码。在第二阶段,我必须从旧图创建一个新图,因此新图中的节点表示第一阶段中的节点集群。这是我的代码:
class Vertex:
def __init__(self,n):
self.name=n
self.description=str
self.maxV1=int
self.maxV2=int
self.neighbors=list()
def add_neighbor(self,v):
if v not in self.neighbors:
self.neighbors.append(v)
#self.neighbors.sort()
class Graph:
verticies={}
def add_vertex(self,vertex):
if isinstance(vertex,Vertex) and vertex.name not in self.verticies:
self.verticies[vertex.name]=vertex
return True
else:
return False
def add_edge(self,u,v):
if u in self.verticies and v in self.verticies:
for key, value in self.verticies.items():
if key==u:
value.add_neighbor(v)
if key ==v:
value.add_neighbor(u)
return True
else:
return False
问题是在创建类Graph
的新实例并添加节点和边时,它们将与旧图一起添加。我想在新图表中添加新节点。