NetworkX (Python): cómo cambiar el peso de los bordes por regla designada

Tengo un gráfico ponderado:

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

obtener la lista de nodos:

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

Quiero cambiar el peso de cada borde por esta regla:

elimine un nodo, como el nodo 5, claramente, el borde (4, 5) y (5, 6) se eliminarán, y el peso de cada borde se convertirá en:

{# estos bordes están cerca del borde eliminado (4, 5) y (5, 6)

    (3,4): ‘peso’ = 1.1,

    (6,7): ‘peso’ = 1.1,

    # estos bordes están cerca de los bordes mencionados anteriormente

    (2,3): ‘peso’ = 1.2,

    (7,8): ‘peso’ = 1.2,

    # estos bordes están cerca de los bordes mencionados anteriormente

    (1,2): ‘peso’ = 1.3,

    (8,9): ‘peso’ = 1.3,

    # este borde está cerca (1,2)

    (0,1): ‘peso’ = 1.4}

    ¿Cómo escribir este algoritmo?

    PS: path_graph es solo un ejemplo. Necesito un progtwig que se adapte a cualquier tipo de gráfica. Además, el progtwig debe ser iterable, lo que significa que puedo eliminar un nodo del gráfico de origen cada vez.

    Saludos

    Puede acceder al peso del borde como G [u] [v] [‘peso’] o al iterar sobre los datos del borde. Así que puedes por ejemplo

     In [1]: import networkx as nx In [2]: G=nx.DiGraph() In [3]: G.add_edge(1,2,weight=10) In [4]: G.add_edge(2,3,weight=20) In [5]: G[2][3]['weight'] Out[5]: 20 In [6]: G[2][3]['weight']=200 In [7]: G[2][3]['weight'] Out[7]: 200 In [8]: G.edges(data=True) Out[8]: [(1, 2, {'weight': 10}), (2, 3, {'weight': 200})] In [9]: for u,v,d in G.edges(data=True): ...: d['weight']+=7 ...: ...: In [10]: G.edges(data=True) Out[10]: [(1, 2, {'weight': 17}), (2, 3, {'weight': 207})]