Source code for networkx.algorithms.community.community_utils

"""社区发现算法的辅助函数。"""

import networkx as nx

__all__ = ["is_partition"]


[docs] @nx._dispatchable def is_partition(G, communities): """返回 *True* 如果 `communities` 是图 `G` 的节点的一个划分。 一个全集的划分是一些互不相交的集合的族,它们的并集是整个全集。 Parameters ---------- G : NetworkX 图。 communities : 节点集合的列表或可迭代对象 如果不是列表,内部会转换为列表。 如果是迭代器,它将被耗尽。 """ # Alternate implementation: # return all(sum(1 if v in c else 0 for c in communities) == 1 for v in G) if not isinstance(communities, list): communities = list(communities) nodes = {n for c in communities for n in c if n in G} return len(G) == len(nodes) == sum(len(c) for c in communities)