To nie jest odpowiedź na wykresie pytanie, ale z pewnością można wdrożyć 2D listę w Pythonie, bez uciekania się do list list w co najmniej dwa sposoby:
można po prostu użyć słownika:
import collections
t = collections.defaultdict(int)
t[0, 5] = 9
print t[0, 5]
Ma to tę zaletę, że jest rzadkie.
Dla bardziej wyrafinowanego podejścia, ale wymagającego więcej pracy, można użyć listy 1d i obliczyć indeks przy użyciu współrzędnych 2D wraz z wysokością i szerokością stołu.
class Table(object):
def __init__(self, width, height):
self._table = [None,] * (width * height)
self._width = width
def __getitem__(self, coordinate):
if coordinate[0] >= width or coordinate[1] >= height:
raise IndexError('Index exceeded table dimensions')
if coordinate[0] < 0 or coordinate[1] < 0:
raise IndexError('Index must be non-negative')
return self._table[coordinate[1] * width + coordinate[0]]
def __setitem__(self, coordinate, value):
if coordinate[0] >= width or coordinate[1] >= height:
raise IndexError('Index exceeded table dimensions')
if coordinate[0] < 0 or coordinate[1] < 0:
raise IndexError('Index must be non-negative')
self._table[coordinate[1] * width + coordinate[0]] = value
t = Table(10,10)
t[0, 5] = 9
print t[0, 5]
Dlaczego lista nie jest literą Python? Listy 2D są dość powszechnie używane w Pythonie. Możesz także użyć dobrze rozwiniętego [numpy.ndarray] (http://docs.scipy.org/doc/numpy/reference/arrays.ndarray.html), który implementuje n-wymiarowe tablice i obsługuje indeksowanie według wiersza lub kolumna. –