Python中提取图节点属性键值并分存至不同字典的实现方案
解决方案
修改后的代码
import networkx as nx G = nx.read_gml('./networks/karate.gml', label=None) bb = nx.betweenness_centrality(G) cc = nx.closeness_centrality(G) nx.set_node_attributes(G, bb, "Betweenness") nx.set_node_attributes(G, cc, "Closeness") # 获取Closeness值最大的节点数据 max_node = max(G.nodes(data=True), key=lambda x: x[1]['Closeness']) # 拆分节点编号与属性字典,构造目标格式 node_num_dict = {'Number': max_node[0]} node_attr_dict = max_node[1] # 输出结果 print(node_num_dict) print(node_attr_dict)
关键说明
- 直接移除了原代码中无实际作用的
for g in G.nodes(): continue循环 - 将
max()返回的元组(节点编号+属性字典)存入变量max_node,通过索引拆分出两部分内容 - 分别用拆分出的节点编号和属性字典,构造你需要的两个独立字典
- 直接打印两个字典即可得到期望的输出格式
运行结果
{'Number': 1} {'Betweenness': 0.43763528138528146, 'Closeness': 0.5689655172413793}
内容的提问来源于stack exchange,提问作者user19092610
相关产品推荐
相关产品推荐

