Я создал график из 2 списков, и я добавил метку в качестве метки.
source_nodes = ['A', 'B', 'C', 'D']
dest_nodes = ['P', 'P', 'R', 'S']
data_nodes = [{'item': ['element1','element2','element3'], 'item1': ['element1','element2','element4']}, {'item': ['element1','element2','element5'], 'item1': ['element1','element5','element6']}, {}, {}]
Не все ребра имеют эти метки, но для тех, которые имеют, я хочу сравнить и создать дополнительные ребра.
for u,v,d in zip(source_nodes, dest_nodes, data_nodes):
G.add_edge(u, v, label=d)
Например, в этом примере я получаю: ('A', 'P', {'label': 'item': ['element1', 'element2', 'element3'], ' item1 ': [' element1 ',' element2 ',' element4 ']}), (' B ',' P ', {' label ':' item ': [' element1 ',' element2 ',' element5 '] , 'item1': ['element1', 'element5', 'element6']}), ('C', 'R', {'label': {}}), ('D', 'S' , {'label': {}})
Я хотел бы сравнить элементы 'item' одного ребра с элементами 'item1' других ребер, и если они имеют хотя бы один общий элемент создать грань между ними. В этом случае для (A, P) и (B, P) следует создать ребро между «A» и «B».