2016-04-18 11 views
-1

Ich mache weiterhin meinen Sudoku-Löser, aber ich habe ein Problem mit meiner 2D-Liste.Ersetzen Sie ein Element in einer 2D-Liste

Meine Sudoku-Datei txt sieht wie folgt aus:

..3 ... ... 
etc... 

Also hier, gerade jetzt, mit dieser Funktion:

def grid_index(grid, value): 
    for i, row in enumerate(grid): 
     for j, cell in enumerate(row): 
      if cell == value: 
       return i, j 
    return -1, -1 
print("Coords:",grid_index(sudoku, ".")) 

ich das erste leere Element gefunden, die Änderung sein müssen. Die Ausgabe ist (0,0).

Jetzt ist mein Punkt, das Element zu ersetzen "." um 1 (zum Beispiel) mit den Koordinaten.

Meine Funktion zu ändern ist:

def solve_next_unsolved(sudoku): 
    coords = grid_index(sudoku, ".") # so here i get coordinate to the point element 
    number_to_input = 1 

Soll ich das Element mit Koordinaten bekommen? Wie kann ich das von meiner grid_index() Funktion gefundene Element mit 1 ändern?

+1

'sudoku [coords [0]] [coords [1]] = number_to_input'? – Lafexlos

+0

wtf yeah ... es ist ... -_- Bitte löschen Sie dieses Thema! XD – Ravaniss

Antwort

0

Haben Sie schon einmal von Pandabas Datarahmen gehört? Es sollte ziemlich gut für Ihr Problem funktionieren, denke ich. Dies erstellt Ihr Gitter (wobei Ihr_Anfangsgitter eine Liste Ihrer Reihen Ihres Gitters ist).

import pandas as pd 
grid = pd.dataframe(your_initial_grid) 

Dann können Sie leicht Wert Fall von ändern:

grid.iloc[i,j] = whatever_number_you_want 
+0

Ich weiß nicht, was es ist. Ich werde das sehen. Danke für die Information – Ravaniss

+0

Gern geschehen! Wenn Sie Informationen brauchen, zögern Sie nicht! – ysearka

1

Warum nicht einfach den Wert der zugehörigen Indizes mit Listenposition ändern?

grid[i][j] = 1 # Or whatever value you want 
Verwandte Themen