Python 网络X2 adjlist\u内部目录工厂和adjlist\u外部目录工厂之间的区别是什么

Python 网络X2 adjlist\u内部目录工厂和adjlist\u外部目录工厂之间的区别是什么,python,networkx,adjacency-list,Python,Networkx,Adjacency List,在networkx 1中,graph有一个名为邻接列表\u dict\u factory的方法,可用于创建邻接列表。在networkx 2中,有两种方法 adjlist\u内部目录\u工厂 adjlist\u outer\u dict\u factory 内部和外部在这里指的是什么 具体来说,对于,我应该使用哪一个来替换adjlist\u dict\u factory 我都试过了,看起来都很管用 在IPython笔记本电脑中,??中的信息对他们来说看起来也一样 In [4]: g.adjli

在networkx 1中,graph有一个名为
邻接列表\u dict\u factory
的方法,可用于创建邻接列表。在networkx 2中,有两种方法

  • adjlist\u内部目录\u工厂
  • adjlist\u outer\u dict\u factory
内部和外部在这里指的是什么

具体来说,对于,我应该使用哪一个来替换
adjlist\u dict\u factory

我都试过了,看起来都很管用

在IPython笔记本电脑中,
??
中的信息对他们来说看起来也一样

In [4]: g.adjlist_outer_dict_factory??
Init signature: g.adjlist_outer_dict_factory(self, /, *args, **kwargs)
Docstring:
dict() -> new empty dictionary
dict(mapping) -> new dictionary initialized from a mapping object's
    (key, value) pairs
dict(iterable) -> new dictionary initialized as if via:
    d = {}
    for k, v in iterable:
        d[k] = v
dict(**kwargs) -> new dictionary initialized with the name=value pairs
    in the keyword argument list.  For example:  dict(one=1, two=2)
Type:           type

In [5]: nx.__version__
Out[5]: '2.2'
从:

子类(高级):

Graph类使用dict of dict of dict数据结构。外部dict(node_dict)保存由节点键入的邻接信息。下一个dict(adjlist_dict)表示邻接信息并保存由邻居键入的边缘数据。内部dict(edge_attr_dict)表示边缘数据,并保存由属性名称键入的边缘属性值

这三个dict中的每一个都可以在子类中被用户定义的类似dict的对象替换。一般来说,应该保留类似dict的功能,但可以添加额外的功能。若要替换其中一个dict,请通过更改保留类似dict结构的工厂的class(!)变量来创建新的graph类。变量名为node_dict_factory、node_attr_dict_factory、adjlist_inner_dict_factory、adjlist_outer_dict_factory、edge_attr_dict_factory和graph_attr_dict_factory

因此,这些函数在networkx2图的子类中用于:

  • adjlist\u outer\u dict\u factory
    :节点邻接(边是否存在)
  • adjlist\u inner\u dict\u factory
    :边缘数据