Listenelemente vergleichen und zusammenziehen...
Verfasst: Freitag 16. Januar 2009, 13:02
Ich hab ein kleines Problem das vermutlich leicht lösbar ist, aber ich habe irgendwo einen Knoten im Hirn.
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:
Oder muss ich da einen gänzlich anderen Weg gehen? Die Listen können wohl bis zu 60 Elemente lang werden... so ca.
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']