You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NetworkX中提取节点属性最大值对应的节点键并存入新列表/字典

提取Closeness中心性最大节点的实现方法

假设你已经完成空手道网络的加载、Betweenness和Closeness中心性的计算及节点属性设置,下面是提取目标节点并存储的具体实现:

单节点最大值场景

如果只有一个节点的Closeness值最大(比如你提到的节点1),可以直接用max函数定位:

import networkx as nx

# 加载空手道网络(你应该已经完成这一步)
G = nx.read_gml("karate.gml")

# 假设你已经执行过以下代码设置节点属性:
# closeness_centrality = nx.closeness_centrality(G)
# nx.set_node_attributes(G, closeness_centrality, "closeness")

# 获取Closeness值最大的节点键
max_closeness_node = max(G.nodes(data=True), key=lambda item: item[1]["closeness"])[0]

# 添加到新列表
target_list = []
target_list.append(max_closeness_node)

# 或者添加到字典
target_dict = {}
target_dict["max_closeness_node"] = max_closeness_node

代码说明

  • G.nodes(data=True)返回所有节点的元组,格式为(节点ID, {属性键值对})
  • lambda item: item[1]["closeness"]指定max函数以节点的closeness属性值作为比较依据
  • 取元组的第一个元素[0],就能得到节点的键(即你需要的1)

多节点并列最大值场景

如果存在多个节点的Closeness值并列最大,用列表推导筛选所有符合条件的节点:

# 先获取最大的Closeness属性值
max_closeness_val = max(nx.get_node_attributes(G, "closeness").values())

# 筛选所有值等于最大值的节点
max_nodes = [node for node, attr in G.nodes(data=True) if attr["closeness"] == max_closeness_val]

# 存储到列表或字典
target_list.extend(max_nodes)
target_dict["max_closeness_nodes"] = max_nodes

内容的提问来源于stack exchange,提问作者user19092610

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 16:22:56