Ich möchte Tupel anhand ähnlicher Attribute gruppieren

Ich habe eine Liste von Tupeln. [(1, 2), (2, 3), (4, 3), (5, 6), (6, 7), (8, 2)]

Ich möchte sie in Listen gruppieren, basierend darauf, welche Tupel verbunden sind (verwandte Werte haben).

Das Endergebnis sind also zwei Listen verwandter Tupelwerte = [[1, 2, 3, 4, 8], [5, 6, 7]]

Wie kann ich dazu eine Funktion schreiben? Dies war eine Frage zum Vorstellungsgespräch. Ich habe versucht, es in Python zu tun, aber ich bin frustriert und möchte nur die Logik hinter der Antwort sehen. Selbst Pseudo-Code würde mir helfen, damit ich sehen kann, was ich falsch gemacht habe.

Ich hatte nur ein paar Minuten Zeit, um dies vor Ort zu tun, aber hier ist, was ich versucht habe:

def find_partitions(connections):
 theBigList = []     # List of Lists
 list1 = []          # The initial list to store lists
 theBigList.append(list1)

 for list in theBigList:
 list.append(connection[1[0], 1[1]])
     for i in connections:
         if i[0] in list or i[1] in list:
             list.append(i[0], i[1])

         else:
             newList = []
             theBigList.append(newList)

Im Grunde wollte der Typ eine Liste von Wertelisten, die in Beziehung standen. Ich habe versucht, eine for-Schleife zu verwenden, habe aber festgestellt, dass dies nicht funktioniert, und dann ist die Zeit abgelaufen.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage