В чем разница между networkx2 adjlist_inner_dict_factory и adjlist_outter_dict_factory - PullRequest
2 голосов
/ 10 июня 2019

В сети x 1 в графе есть метод с именем adjlist_dict_factory, который можно использовать для создания списка смежности. В сети 2 есть два метода

  • adjlist_inner_dict_factory
  • adjlist_outer_dict_factory

К чему здесь относится внутреннее и внешнее?

В частности, для кода извлечения подграфа в 1.10 , который следует использовать для замены adjlist_dict_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'

1 Ответ

0 голосов
/ 10 июня 2019

Из официальной документации :

Подклассы (Advanced):

В классе Graph используется структура данных dict-of-dict-of-dict,Внешний dict (node_dict) содержит информацию о смежности, заданную узлом.Следующий dict (adjlist_dict) представляет информацию о смежности и содержит данные о границах, заданные соседом.Внутренний dict (edge_attr_dict) представляет данные ребра и содержит значения атрибутов ребра, основанные на именах атрибутов.

Каждый из этих трех диктов может быть заменен в подклассе определяемым пользователем объектом, похожим на dict.В общем, нужно поддерживать подобные диктату функции, но можно добавлять дополнительные функции.Чтобы заменить один из диктов, создайте новый класс графа, изменив переменную класса (!), Содержащую фабрику для этой диктовочной структуры.Имена переменных 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_outer_dict_factory:смежность узлов (существуют ли ребра)
  • adjlist_inner_dict_factory: данные ребер
...