networkx最佳实践在迭代边缘时获取边缘属性值

时间:2015-06-19 13:12:21

标签: python python-2.7 networkx

给出边缘列表(或生成器)。识别具有特定属性值的边的最可读方式是什么?例如,'edge_type'为'foo'的所有边?

目前,我的代码如下所示:

for edge in nx_graph.out_edges(my_node):
   edge_type = nx_graph[edge[0]][edge[1]]['edge_type']
   if edge_type == 'foo':
       ...

由于许多括号,这不是很容易阅读...

稍微可读的方法:

for edge in G.edges_iter(data=True):
    if edge[2]['edge_type']=='foo':
        ...

但目前还不是很清楚(特别是[2])。另外,我不确定如何将其与out_edges()

一起使用

1 个答案:

答案 0 :(得分:3)

这是一个选项

for edge in ((u,v,data) for u,v,data in G.edges_iter(data=True) if data['edge_type']=='foo'): 
    ...