Это не ответ на первоначальный вопрос, а на ваше «как использовать опцию dict» (для имитации 2D-массива) в комментариях выше:
WIDTH = 5
HEIGHT = 5
# a dict to be used as a 2D array:
grid = {}
# initialize the grid to spaces
for x in range(WIDTH):
for y in range(HEIGHT):
grid[ (x,y) ] = ' '
# drop a few Xs
grid[ (1,1) ] = 'X'
grid[ (3,2) ] = 'X'
grid[ (0,4) ] = 'X'
# iterate over the grid in raster order
for x in range(WIDTH):
for y in range(HEIGHT):
if grid[ (x,y) ] == 'X':
print "X found at %d,%d"%(x,y)
# iterate over the grid in arbitrary order, but once per cell
count = 0
for coord,contents in grid.iteritems():
if contents == 'X':
count += 1
print "found %d Xs"%(count)
Кортежи, будучи неизменными,сделать совершенно хорошие словарные ключи.Ячейки в сетке не существуют, пока вы не назначите их, поэтому очень эффективно для разреженных массивов, если это ваша вещь.