簡體   English   中英

在 NetworkX MultiGraph 中查找重數大於 2 的邊

[英]Find edges of multiplicity larger than 2 in a NetworkX MultiGraph

我有一個MultiGraph ,它可以在任何兩個節點之間有多個邊:

g = MultiGraph()
g.add_nodes_from([1,2,3,4,5,6])
g.add_edges_from([(1,2), (2,1), (1,2), (3,4), (5,6), (6,5), (3,5), (3, 5), (3, 5), (3, 5)])

如何在此圖中找到重數大於 2 的所有邊? 我可以做這樣的事情:

for s in itertools.combinations(g.nodes(), 2):
    e = g[s[0]].get(s[1], {})
    if len(e) > 2:
        print(s[0], s[1])

但效率太低,所以我正在尋找更好的解決方案

for u in G.nodes():
    for neighbor in G.neighbors(u):
        if G.number_of_edges(u,neighbor)>2:
            print (u,neighbor)

注意 - 每個這樣的邊緣將被打印兩次。

[x for x in tmp.edges if tmp.number_of_edges(x[0], x[1]) > 1]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM