【发布时间】:2020-05-26 01:27:48
【问题描述】:
我想从我用 networkX 构建的有向图中采样三个边属性。图表中具有“依赖”属性的边如下所示:
import networkx as nx
import random
from random import choice
G=nx.DiGraph()
G.add_edge('x','a', dependency=0.4)
G.add_edge('x','b', dependency=0.6)
G.add_edge('a','c', dependency=1)
G.add_edge('b','c', dependency=0.3)
G.add_edge('b','d', dependency=0.7)
G.add_edge('d','e', dependency=1)
G.add_edge('c','y', dependency=1)
G.add_edge('e','y', dependency=1)
现在我想从上面采样三个不同的边缘属性,并将它们与 0 到 1 之间的随机数相乘。它应该看起来像这样:
for i in range(3):
sampled_edge = random.sample(G.edges, 1)
sampled_edge_with_random_number = sampled_edge['dependency'] * random.uniform(0,1)
print(sampled_edge_with_random_number)
但我不断收到以下错误消息:
TypeError: list indices must be integers or slices, not str
最好的方法是什么?
【问题讨论】:
-
random.sample仅在您import random时有效