我无法在networkx中隔离图形边缘权重的值 我使用kruskals算法来查找给定图形的MST。 U和V是欧几里得空间中的点,数据是每条边的权重的字典。我使用字典值函数将值存储在集合中但是我返回了此错误
File "/Users/mac/anaconda3/lib/python3.6/site-packages/networkx/convert_matrix.py", line 1143, in to_numpy_array
A[index[u], index[v]] = d.get(weight, 1)
TypeError: float() argument must be a string or a number, not 'dict_values'
我遇到问题的特定代码就是这个。
for u,v, data in sorted(self.original_graph.edges(data=True), key=lambda x: x[2]['weight']):
setu = UF.find(u)
setv= UF.find(v)
if setu != setv:
A.append((u,v,data.values()))
UF.union(setu,setv)
我完全清楚networkx内置了自己的最小生成树函数,但是我试图在盲目实现内置函数之前自己学习这些算法
答案 0 :(得分:0)
在阅读python的文档后,我意识到data.values()返回了dict中所有值的列表,我需要做的是引用数据[' weight' ]以获得它所拥有的价值。