У меня есть немного обманщик мозга, приведенные данные, как это:Расширенный группировка в Python
data = [('topic1', (['apples', 'oranges'], 0.14975108213820515)),
('topic2', (['oranges', 'raisins'], 0.14975108213820515)),
('topic3', (['grapes', 'raisins'], 0.14975108213820515)),
('topic4', (['trees', 'flowers'], 0.14975108213820515))]
Я хочу соединить темы, основанные на, если хотя бы один из текстов в массиве (в 1-ом элементе второго элемента кортежа) является общим. Таким образом, в приведенном выше примере:
topic1 is connected to topic2
topic2 is connected to topic1 and topic3
topic3 is connected to topic2
topic4 is unconnected
В идеале, мой выход будет выглядеть так:
output = [(topic1,topic2),
(topic1,topic2, topic3),
(topic3, topic2),
(topic4)]
Итак, учитывая вход как data
, как я мог бы получить выход как output
. Я думаю, что itertools может быть каким-то образом вовлечен, но я действительно застрял в этом.
Тема 2 имеет общие элементы с Topic1 и Topic3, но Topic1 и Topic3 не имеют и связаны только из-за Topic2. Это имеет значение? – MeetTitan