rustworkx.PyDAG.find_predecessors_by_edge#

PyDAG.find_predecessors_by_edge(node, filter_fn, /)#

返回与给定节点前驱节点关联的数据列表,其中连接自那些节点的边满足提供的过滤函数。

前置节点被定义为一个具有指向指定节点的有向边的节点。该方法返回所有边满足条件的节点。

>>> G = rx.PyDiGraph()
>>> G.add_nodes_from(["A", "B", "C", "D", "E"])
NodeIndices[0, 1, 2, 3, 4]
>>> G.extend_from_weighted_edge_list([(0, 3, 10), (1, 3, 20), (2, 3, 30), (3, 4, 10)])
>>> G.find_predecessors_by_edge(3, lambda x: x < 25)
['B', 'A']

如需仅获取一个节点,参见 find_predecessor_node_by_edge()

Parameters:
  • node (int) – 要获取前继节点的索引

  • filter_fn (Callable) – 要应用于边的筛选函数。该函数接收一个参数(边的数据负载/权重对象),并返回布尔值表示该边是否匹配条件。 如果任何边返回 True,节点将被包含。

Returns:

所有前驱节点数据的列表,其中至少有一条边符合筛选条件

Return type:

列表[S]