小编Joh*_*nny的帖子

NetworkX(Python):如何通过指定规则更改边的权重

我有一个加权图:

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

获取节点列表:

[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]
Run Code Online (Sandbox Code Playgroud)

我想通过这条规则改变每条边的重量:

删除一个节点,如节点5,清除,edge(4,5)和(5,6)将被删除,每个边的权重将变为:

{#这些边缘位于删除的边缘(4,5)和(5,6)附近

(3,4): '重量'= 1.1,

(6,7): '重量'= 1.1,

#these边缘位于上述边缘附近

(2,3): '重量'= 1.2,

(7,8): '重量'= 1.2,

#these边缘位于上述边缘附近

(1,2): '重量'= 1.3,

(8,9): '重量'= 1.3,

#这边是附近的(1,2)

(0,1): '重量'= 1.4}

怎么写这个算法?

PS:path_graph只是一个例子.我需要一个适合任何图表类型的程序.此外,程序需要是可迭代的,这意味着我每次都可以从原始图中删除一个节点.

问候

python algorithm networkx edge-list

16
推荐指数
1
解决办法
2万
查看次数

标签 统计

algorithm ×1

edge-list ×1

networkx ×1

python ×1