Python 如何在不创建冗余数据的情况下改进networkx图形的结果?

Python 如何在不创建冗余数据的情况下改进networkx图形的结果?,python,python-3.x,dictionary,graph,networkx,Python,Python 3.x,Dictionary,Graph,Networkx,目前,我有一个非常简单的图表,如下所示: import networkx as nx G = nx.Graph() lat = 40.661 long = -73.944 G.add_node(12345, latlong=(lat, long)) 当然,和G.nodes[12345]['latlong']返回(40.661,-73.944) 设置事情的最佳方式是什么,以便我也获得: G.nodes[12345]['longlat']返回(-73.944,40.661) G.nodes[

目前,我有一个非常简单的图表,如下所示:

import networkx as nx

G = nx.Graph()

lat = 40.661
long = -73.944

G.add_node(12345, latlong=(lat, long))
当然,和
G.nodes[12345]['latlong']
返回
(40.661,-73.944)

设置事情的最佳方式是什么,以便我获得:

G.nodes[12345]['longlat']
返回
(-73.944,40.661)

G.nodes[(40.661,-73.944)]
返回
12345

我知道我也可以添加这样的节点:
G.add_节点(12345,latlong=(lat,long),longlat=(long,lat))
并且有一个额外的字典
d={(40.661,-73.944):12345}


但是,还有一种更好的、不太粗糙的、不重复数据的方法吗?

networkx
是一个图形包,在这个包中,您必须始终决定要用节点表示哪个元素(在您的情况下是id还是位置)。或者,如果您只想存储信息,并且想自由访问您拥有的任何信息,您可能需要查找表(例如pandas软件包)或数据库(如果您有大型数据集)。显然,我需要图形。。。现在,我添加了一个字典,将latlong映射到ID,并将函数映射到实例。所以这些现在起作用了:
G.get\u id()
G.get\u latlong()
G.get\u longlat()
。但我不确定是否有一个非常好的方法来做到这一点。好的,我理解。因此,您需要类似于此问题中所述的内容:并创建自己的
networkx.Graph
子类,请参见,其中您将
dict
替换为
AliasDict
networkx
是一个图形包,您必须始终决定要用节点表示哪个元素(在您的情况下,可以是id或位置)。或者,如果您只想存储信息并想自由访问您拥有的任何信息,您可能需要查找表(例如pandas软件包)或数据库(如果您有大型数据集)。显然,我需要这个图…现在我已经添加了一个字典,将latlong映射到id,并将函数映射到实例。因此,这些现在可以工作:
G.get\u id()
G.get\u latlong()
G.get\u longlat()
。但不确定是否有一种真正简洁的方法可以做到这一点。好的,我理解。因此,您需要类似于此问题中所述的内容:并创建自己的
networkx.Graph
子类,请参见,其中您将
dict
替换为
AliasDict