NetworkX (Python): как изменить вес ребер по заданному правилу

У меня есть взвешенный график:

F=nx.path_graph(10)
G=nx.Graph()
for (u, v) in F.edges():
    G.add_edge(u,v,weight=1)

получить список узлов:

[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]

Я хочу изменить вес каждого ребра по этому правилу:

удалить один узел, такой как узел 5, ясно, ребро (4, 5) и (5, 6) будут удалены, а вес каждого ребра превратится в:

{# эти ребра находятся рядом с удаленным ребром (4, 5) и (5, 6)

(3,4): 'вес' = 1,1,

(6,7): 'вес' = 1,1,

# эти края находятся рядом с краями выше

(2,3): 'вес' = 1,2,

(7,8): 'вес' = 1,2,

# эти края находятся рядом с краями выше

(1,2): 'вес' = 1,3,

(8,9): 'вес' = 1,3,

# этот край рядом (1,2)

(0,1): 'вес' = 1,4}

Как написать этот алгоритм?

PS: path_graph это просто пример. Мне нужна программа под любой тип графика. Кроме того, программа должна быть повторяемой, это означает, что я могу каждый раз удалять один узел из исходного графа.

С уважением

Ответы на вопрос(1)

Ваш ответ на вопрос