Тайна состоит из трех частей.Во-первых, структура смещений представляет собой двумерный массив:
((0, -1),
(side-1, 0))
Вторая часть заключается в том, что цикл for будет зацикливаться только по строкам:
>>> for row in offsets:
print(row)
(0, -1)
(18, 0)
Третья частьчто распаковка просто распаковывает столбцы в данной строке:
>>> for column_zero, column_one in offsets:
print('Column 0:', column_zero)
print('Column 1:', column_one)
print()
Column 0: 0
Column 1: -1
Column 0: 18
Column 1: 0
Соединение частей показывает, что ваша интуиция была правильной:
print('dy_o', 'dy_i', 'dx_o', 'dx_i', sep='\t\t')
print('----', '----', '----', '----', sep='\t\t')
for dy_outer, dy_inner in offsets:
for dx_outer, dx_inner in offsets:
print(dy_outer, dy_inner, dx_outer, dx_inner, sep='\t\t')
дает ожидаемый результат:
dy_o dy_i dx_o dx_i
---- ---- ---- ----
0 -1 0 -1
0 -1 18 0
18 0 0 -1
18 0 18 0
Надеюсь, что это устранит загадку из загадки, внутри загадки: -)