Ich habe eine Liste von Listen, so etwas wieBestimmen der Nachbarn der Zelle zweidimensionale Liste
[[1, 2, 3,],[4, 5, 6,],[7, 8, 9]]
.
Grafisch dargestellt als:
1 2 3
4 5 6
7 8 9
Ich bin für einen eleganten Ansatz sucht den Wert der Nachbarn einer Zelle, horizontal, vertikal und diagonal zu überprüfen. Zum Beispiel sind die Nachbarn von [0] [2] [0] [1], [1] [1] und [1] [2] oder die Zahlen 2, 5, 6.
Jetzt erkenne ich konnte nur einen Brute-Force-Angriff tun jeden Wert a la Überprüfung:
[i-1][j]
[i][j-1]
[i-1][j-1]
[i+1][j]
[i][j+1]
[i+1][j+1]
[i+1][j-1]
[i-1][j+1]
Aber das ist einfach, und ich dachte, ich sah einige elegantere Ansätze mehr lernen können.
Möchten Sie die Indizes oder die Werte erhalten? Und wollen Sie eine Funktion, die zufälligen Zugriff auf jeden Index oder eine Funktion, die eine Liste von (val, Nachbarn_von_val) -Paaren zurückgibt, tun können? - Einfach die Indizes zu bekommen ist zu einfach für eine elegante Lösung, aber was Sie wirklich tun wollen, könnte interessanter sein. –
Entweder oder - Ich habe diese Frage bewusst so allgemein gehalten, dass die Leute sich nicht eingeschränkt fühlen würden. –