questo non risponde alla tua domanda grafico, ma si può certamente implementare un elenco 2D in Python senza ricorrere a elenchi delle liste in almeno due modi:
si può semplicemente utilizzare un dizionario:
import collections
t = collections.defaultdict(int)
t[0, 5] = 9
print t[0, 5]
Questo ha anche il vantaggio che è scarso.
Per un approccio più elaborato, ma che richiede più lavoro, è possibile utilizzare un elenco 1d e calcolare l'indice utilizzando le coordinate 2D insieme all'altezza e alla larghezza della tabella.
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]
Perché un elenco di elenchi non è Pythonic? Gli elenchi 2D sono comunemente usati in Python. Puoi anche usare il ben sviluppato [numpy.ndarray] (http://docs.scipy.org/doc/numpy/reference/arrays.ndarray.html), che implementa matrici n-dimensionali e supporta l'indicizzazione per riga o per riga colonna. –