Я использую графическую библиотеку NetworkX для Python. В какой-то момент в моей программе я хотел бы «объединить» свои идентификаторы узлов в последовательность чисел. Вот мой наивный подход:
start = 1 # could be anything
for i, n in enumerate(g.nodes()):
if i+start == n:
continue
g.add_node(i+start, attr_dict=g.node[n])
g.add_edges_from([(i+start, v, g[n][v]) for v in g.neighbors(n)])
g.remove_node(n)
Есть ли более быстрый способ, чем эта исчерпывающая копия всех соседей? Например, я попробовал g [i + start] = g [n]
, но это запрещено.
Спасибо!