geschachtelte for-loops
Verfasst: Mittwoch 26. Mai 2010, 09:50
Ich versuche gerade, ein Script zum Vergleichen von Sequenzpaaren zu erstellen, und habe mal wieder Grundsatzprobleme:
Problem1:
Vereinfacht sieht mein Code so aus:
Das funktioniert prinzipiell auch, liefert mir aber natürlich alles mehrfach, was ich gar nicht brauche:
Kann mir jemand nen Tipp geben, wie ich das hinkriege?
Problem 2:
Kann mir jemand sagen, was ich verwenden muss, um festzulegen dass entry1,2,3 und 4 alle verschieden sein sollen? Einfach nur
funktioniert nicht, der vergleicht nur die ersten beiden. Muss ich also wirklich das folgende nehmen?
Oder gibt es da auch was Einfacheres für?
Dankeschön!
Problem1:
Vereinfacht sieht mein Code so aus:
Code: Alles auswählen
table = {"l1": [1,2,1], "l2": [1,1,3], "l3" : [1,1,1], "l4" : [1,2,3]}
#...
for entry1 in table:
for entry2 in table:
for entry3 in table:
for entry4 in table:
setlist1 = compareSeq(table[entry1],table[entry2])
setlist2 = compareSeq(table[entry3],table[entry4])
if compareSets(setlist1,setlist2) == True:
print "(", entry1, entry2, "), (", entry3, entry4, ") are ambiguous"
Ich bräuchte eigentlich nur eine Zeile davon, weil die Reihenfolge der Paare und die Reihenfolge innerhalb der Paare nicht interessiert. Am liebsten hätte ich es auf die letzte Zeile reduziert (also alles in aufsteigender Reihenfolge).( l4 l3 ), ( l2 l1 ) are ambiguous
( l4 l3 ), ( l1 l2 ) are ambiguous
( l2 l1 ), ( l4 l3 ) are ambiguous
( l2 l1 ), ( l3 l4 ) are ambiguous
( l3 l4 ), ( l2 l1 ) are ambiguous
( l3 l4 ), ( l1 l2 ) are ambiguous
( l1 l2 ), ( l4 l3 ) are ambiguous
( l1 l2 ), ( l3 l4 ) are ambiguous
Kann mir jemand nen Tipp geben, wie ich das hinkriege?
Problem 2:
Kann mir jemand sagen, was ich verwenden muss, um festzulegen dass entry1,2,3 und 4 alle verschieden sein sollen? Einfach nur
Code: Alles auswählen
entry1 != entry2 != entry3 != entry4
Code: Alles auswählen
entry1 != entry2 and entry1 != entry3 and entry1 != entry4 and entry2 != entry3 and entry2 != entry4 and entry3 != entry4
Dankeschön!