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

Networkx中add_star函数无法为节点添加属性的问题求助

问题原因及解决办法

你遇到的问题核心是对nx.add_star()函数的参数作用理解错啦!

  • nx.add_star()里的weight=1参数,是用来给生成的边添加属性的,不是给节点设置属性。当你执行nx.add_star(G, [0,1,2], weight=1)时,实际上是在节点0与1、0与2之间创建了两条边,这两条边的weight属性被设为1,但节点本身不会自动带上这个属性,所以你调用G.nodes.data()看到的都是空字典。
  • 你可以验证一下边的属性:执行print(G.edges.data()),会输出类似EdgeDataView([(0, 1, {'weight': 1}), (0, 2, {'weight': 1})])的结果,这就说明属性确实是加到边上了。

如果要给节点添加属性,你可以这么做:

  1. 单独给节点设置:
G.nodes[0]['weight'] = 1
G.nodes[1]['weight'] = 1
G.nodes[2]['weight'] = 1
  1. 在添加节点时直接指定属性:
nx.add_nodes_from([(0, {'weight':1}), (1, {'weight':1}), (2, {'weight':1})])
nx.add_star(G, [0,1,2])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 09:47:39