Трехмерные массивы
Python не ограничивает глубину включения списка в список. Здесь вы можете увидеть пример трехмерного массива:
Представьте себе отель. Это огромный отель, состоящий из трех корпусов по 15 этажей в каждом. На каждом этаже по 20 комнат. Для этого вам понадобится массив, который может собирать и обрабатывать информацию о занятых/свободных комнатах.
Первый шаг - тип элементов массива. В этом случае подойдет логическое значение (True
/False
).
Шаг второй - спокойный анализ ситуации. Обобщите имеющуюся информацию: три корпуса, 15 этажей, 20 комнат
Теперь вы можете создать массив:
rooms = [[[False for r in range(20)] for f in range(15)] for t in range(3)]
Первый индекс (от 0
до 2
) выбирает одно из зданий; второй (от 0
до 14
) выбирает этаж, третий (от 0
до 19
) выбирает номер комнаты. Все комнаты изначально свободные.
Теперь вы можете забронировать номер для двоих молодоженов: во втором корпусе, на десятом этаже, комната 14:
rooms[1][9][13] = True
и освободите вторую комнату на пятом этаже, расположенную в первом корпусе:
rooms[0][4][1] = False
Проверьте, есть ли свободные места на 15 этаже 3 корпуса:
vacancy = 0
for room_number in range(20):
if not rooms[2][14][room_number]:
vacancy += 1
Переменная vacancy
содержит 0
, если все комнаты заняты, или количество доступных комнат в противном случае.
Поздравляем! Вы дошли до конца модуля. Так держать!