Урок 30. List comprehension. Стек и очередь

📁 Блок: Python Fundamentals / Компактные обходы и структуры доступа⏱️ Время изучения: ~100 мин🎯 Сложность: Начальная — средняя
#for #in #range #if #else #zip #list #append #pop #sorted #print #is #from #import #len #sum #lower #upper #values #elif #not #or #break #and

⚡ Кратко: что важно

List comprehension создаёт новый список из итерируемого объекта в одной строке.

Фильтр if в конце добавляет только подходящие элементы.

Условное выражение if-else стоит перед for и выбирает значение для каждого элемента.

Вложенные comprehension читаются слева направо как вложенные циклы.

zip() объединяет элементы нескольких последовательностей по позициям и останавливается на самой короткой.

Стек работает по LIFO и удобно реализуется append()/pop().

Очередь работает по FIFO, для неё лучше использовать collections.deque и popleft().

sorted() и list.sort() в Python устойчивы: равные ключи сохраняют исходный порядок.

Топ-3 ошибки: путать ссылку и копию; ожидать порядок там, где его нет; усложнять выражение, когда обычный цикл читается лучше.

О чём этот урок

Источник урока: Python 30: List comprehension. Стек и очередь. Материал сохранён по темам источника, но пояснения и примеры структурированы как интерактивный справочник.

Цели

  • Писать простые list comprehension с фильтрами и преобразованием.
  • Понимать, когда обычный for читается лучше.
  • Использовать zip() для параллельного обхода списков.
  • Реализовать стек и очередь на стандартных структурах.
  • Понять практический смысл устойчивой сортировки.

Что повторить заранее

  • Урок 16 — цикл for
  • Урок 18 — списки
  • Урок 28 — вложенные списки

Разделы урока

Что дальше

Следующая forward-ссылка появится только после генерации следующей папки урока, чтобы не вести на несуществующую страницу.