Ich habe eine Liste mit x elementen. Weiters eine Funktion, die zwei Listenelemente miteinander vergleichen kann und eine 0/1 aussage trifft, ob zwei listenelemente "komplexiert" werden.
Ein "Komplex" sollte dann ein neues Listenelement darstellen und die Entitäten, aus denen er gebildet wurde sollen aus der Liste gelöscht werden.
Vergleiche mit sich selber sind ausgeschlossen.
Welche Schleifenform kann ich da verwenden? Brauche ich eine doppelte for Schleife? Wie komm ich da wieder raus? mit continue? Soll ich das Rekursiv lösen? Was wär da dann die Abbruchbedingung? Ich denk da irgendwie im Kreis oder generell falsch...
Zur Veranschaulichung:
Code: Alles auswählen
Liste = ['A', 'B', 'C', 'D']
for i in Liste:
for j in Liste:
if i != j:
if compare_function(i, j) == 1:
Liste.append(i+j)
Liste.remove(i); Liste.remove(j)
#wie komm ich da jetzt wieder raus? :)
#neue Liste sollte jetzt so ausschauen ['AB', 'C', 'D']