Ниже приведен пример для справки:
pairlist = [("A","B"),("Q","R"),("S","T"),("C","E"),("F","G"),("G","I"),("A","Y"),("B","C"),("B","D")]
Мне нужно получить более взаимосвязанные значения (напрямую или косвенно) кортежей из этого списка
Например: См. приведенный ниже список, где «A» связан с «B» в кортеже («A», «B») в парном списке [0], а «B» связан с «C» в парном списке [7] и т. д. взаимосвязано опосредованно в большом количестве, тогда как "Г" менее взаимосвязано.
pairs1 = ["A", "B", "C", "D", "E", "Y"] #More Interconnected indirectly
pairs2 = ["G", "F", "I"] #Less Interconnected indirectly
Приведенные ниже кортежи в списке Ни где не связаны ни с одним.
("Q","R"),("S","T")
Несмотря на то, что «G» повторяется и не связан с мажором один раз, он отдельно взаимосвязан с другими элементами, что очень мало связано с другими.
Как получить список, как показано ниже
pairs = ["A", "B", "C", "D", "E", "Y"]
Вы ищете самый большой связный компонент на графике. Попробуйте поискать в Интернете с этим термином, и вы сможете что-то найти.
Возможный дубликат Подключенные компоненты Python
Отредактировано с более подробной информацией, не могли бы вы обратиться еще раз и поделиться решением






Вы можете воспользоваться пакетом networkx:
import networkx as nx
pairlist = [("A","B"),("C","E"),("F","G"),("G","I"),("A","Y"),("B","C"),("B","D")]
G = nx.Graph()
G.add_edges_from(pairlist)
for i in nx.connected_components(G):
print(i)
# {'B', 'C', 'E', 'D', 'Y', 'A'}
# {'I', 'F', 'G'}
Для построения графика используйте:
import matplotlib.pyplot as plt
nx.draw(G, with_labels=True)
plt.show()
или если вы используете блокнот Jupyter:
%matplotlib inline
nx.draw(G, with_labels=True)
Большое спасибо за ваше решение ... Удивительная работа, вы проделали отличную работу.
Как получить график или график?
@ManjunathanVenkatesan Я добавил в свой ответ информацию о том, как нарисовать график.
Пожалуйста, объясните свой пример немного подробнее.