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

如何用Python从边列表中提取对应顶点集合的边?

问题描述

编写Python代码,接收edges和sets作为输入,遍历sets中的每个顶点集合,提取出两个顶点均属于该集合的边,最终输出sets_of_edges。

输入输出示例

输入

edges = [ [1,2] , [2,3] , [3,4] , [4,5] , [5,2] , [4,6] , [6,7] , [7,6] , [7,8] ]
sets = [ [2,3,4,5] , [6,7] ]

输出

sets_of_edges = [ [ [2,3] , [3,4] , [4,5] , [5,2] ] , [ [6,7] , [7,6] ] ]

Python实现代码

def extract_target_edges(edges, vertex_sets):
    sets_of_edges = []
    for vertex_group in vertex_sets:
        # 转成集合提升成员判断效率
        vertex_set = set(vertex_group)
        # 筛选两端顶点都在当前集合内的边
        matched_edges = [edge for edge in edges if edge[0] in vertex_set and edge[1] in vertex_set]
        sets_of_edges.append(matched_edges)
    return sets_of_edges

# 测试示例
edges = [ [1,2] , [2,3] , [3,4] , [4,5] , [5,2] , [4,6] , [6,7] , [7,6] , [7,8] ]
sets = [ [2,3,4,5] , [6,7] ]
sets_of_edges = extract_target_edges(edges, sets)
print(sets_of_edges)

代码说明

  • 将每个顶点列表转为set类型,利用集合O(1)时间复杂度的成员判断特性,提升筛选效率。
  • 通过列表推导式遍历所有边,快速筛选出符合条件的边并分组存入结果列表。
  • 函数返回的结果直接对应需求中的sets_of_edges格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 20:58:17