如何在Python中获取与集合对应的边列表?

问题描述 投票:0回答:1
# inputs

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] ]

# output

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

如何编写采用“边”和“集”并输出“sets_of_edges”的代码,通过遍历“集”中的每个集并获取包含集中每个值的边集(如果有意义的话) )。我写了一个示例输入和输出来帮助解释。谢谢! :)

                                                                                     .
python list set edges strongly-connected-graph
1个回答
0
投票

这是一个可以解决您的问题的快速代码示例:

# inputs

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]]

# output

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

res = []
for current_set in sets:
    temp = []
    for current_edge in edges:
        if current_edge[0] in current_set and current_edge[1] in current_set:
            temp.append(current_edge)
    res.append(temp)

print(res)
© www.soinside.com 2019 - 2024. All rights reserved.