2016-08-08 50 views
0

Ich arbeite an einem Sudoku-Löser in Python. Die Koordinaten der Felder werden durch diesen Code gegeben:Suche nach einem Teil eines Tupels in einer Liste von Tupeln

for row in range(1, 10): 
    for column in range(1,10): 
     boxes.append((row, column)) 

Später, ich habe eine Liste von Tupeln in dem Format (Zeile, Spalte, Feld-Nummer). Ich muss sie so organisieren, dass sie in der Reihenfolge der ersten Liste sind. Beide haben die gleiche Länge, also könnte ich eine neue Liste erstellen, indem ich jedes (Reihen-, Spalten-) Paar in der größeren Liste finde. Mit anderen Worten, für das Element (1, 1) möchte ich ein Tupel in der anderen Liste finden, in dem Element 0 "1" und Element 1 "1" ist.

Wie kann ich das tun?

Antwort

0

Ich glaube, das die (Zeile, Spalte) für die Suche nach Paar funktionieren soll:

entry = [e for e in tuple_list if (e[0] == row and e[1] == column)][0] 

Sie im Wesentlichen mit einer Liste aller Einträge e, die die (1, 1) Muster und dann das bekommt am Ende passen zuerst von [0].

Verwenden Sie diese in einer Schleife jedes einzeln zu finden:

sorted_tuple_list = [] 
for row in range(1, 10): 
    for column in range(1,10): 
     entry = [e for e in tuple_list if (e[0] == row and e[1] == column)][0] 
     sorted_tuple_list.append(entry)