Python-TypeError:函数接受3个位置参数,但给出了4个
我试图在城市之间添加边缘,并根据它们之间的距离添加词典。 当我试图编译代码时,我遇到了这个错误,有人能帮我吗Python-TypeError:函数接受3个位置参数,但给出了4个,python,networkx,Python,Networkx,我试图在城市之间添加边缘,并根据它们之间的距离添加词典。 当我试图编译代码时,我遇到了这个错误,有人能帮我吗 import networkx as nx cities = nx.Graph() cities.add_edge('San Diego','LA',{'distance':0.4}) cities.add_edge('NY','Nashville',{'distance':5.6}) cities.add_edge('Boston','DC',{'distance':0.8}) 我
import networkx as nx
cities = nx.Graph()
cities.add_edge('San Diego','LA',{'distance':0.4})
cities.add_edge('NY','Nashville',{'distance':5.6})
cities.add_edge('Boston','DC',{'distance':0.8})
我相信您的代码将在networkx 2.0中运行它似乎对我有效,但在networkx 1.11中不起作用 在阅读networkx 1.11的文档时,您似乎需要执行以下操作之一
cities.add_edge('Boston', 'Nashville', distance=0.4})
或
但是我不能在我的机器上轻松地测试它,因为我的机器有v2.0。如果你想使用属性字典,那么你可以使用@Joel第二个例子
cities.add_edge('Boston', 'Nashville', attr_dict = {'distance':0.4})
然而,在这种情况下,您将获得“attr_dict”作为一个属性,您将在其中拥有您的字典。像这样
cities.edges(data=True)
会回来的
EdgeDatView[“波士顿”、“纳什维尔”、{attr_dict':{“距离”:
0.4}]
在属性中仅获取词典的一种方法是从以下位置添加边:
会回来的
EdgeDataView['San Diego','LA',{'distance':0.4},'NY','Nashville',{'distance':5.6},'Boston','DC',{'distance':0.8}]
请不要发布代码的图片,将其放在代码块中。请共享add_edge方法的代码这只是瞎猜,但我的猜测是,您需要将self添加到add_edge方法所采用的参数中。鉴于add_edge是一个networkx方法,这是标记之一,我想这就是OP的用途。所以关于它是如何编码的问题可能是错误的。也就是说,这在networkx 2.0中为我运行
cities.edges(data=True)
cities.add_edges_from([('San Diego','LA',{'distance':0.4})])
cities.add_edges_from([('NY','Nashville',{'distance':5.6}),
('Boston','DC',{'distance':0.8})])
cities.edges(data=True)