You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历Networkx有向图节点'a'获取指定格式的边属性列表

处理NetworkX有向图中节点'a'的边属性遍历需求

这里有个直观的方法来实现你想要的结果——我们只需要分开处理节点'a'的出边和入边,再把结果合并就行:

步骤说明

  1. 先提取节点'a'所有出边的attr属性值,直接保留正值
  2. 再提取节点'a'所有入边的attr属性值,给每个值加上负号
  3. 把这两部分结果拼接成一个列表,就是你要的格式

完整代码示例

import networkx as nx

# 初始化你定义的有向图
G = nx.DiGraph()
G.add_edge('a', 'b', attr=0.6)
G.add_edge('a', 'c', attr=0.2)
G.add_edge('d', 'a', attr=0.3)

# 提取出边的attr值
outgoing_attrs = [edge_data['attr'] for _, _, edge_data in G.out_edges('a', data=True)]
# 提取入边的attr值并取负
incoming_attrs = [-edge_data['attr'] for _, _, edge_data in G.in_edges('a', data=True)]
# 合并得到最终列表
result_list = outgoing_attrs + incoming_attrs

print(result_list)  # 输出:[0.6, 0.2, -0.3]

关键细节解释

  • G.out_edges('a', data=True):NetworkX的这个方法会返回节点'a'的所有出边,data=True参数会让结果包含每条边的属性字典
  • G.in_edges('a', data=True):对应地,这个方法返回节点'a'的所有入边,同样带上属性数据
  • 用列表推导式可以快速遍历边数据,分别处理出边和入边的属性值,最后拼接就得到了符合要求的结果

如果想要更紧凑的写法,也可以把合并步骤写成一行:

result_list = [d['attr'] for _, _, d in G.out_edges('a', data=True)] + [-d['attr'] for _, _, d in G.in_edges('a', data=True)]

内容的提问来源于stack exchange,提问作者softProcess

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:03:41