Рассмотрим обязательные для понимания и использования киллер-фичи Python, поговорим о плюсах-минусах, особенностях, когда и что использовать.
Основные моменты:
1) все компсы и генэксп работают по принципу
[ВЫРАЖЕНИЕ/ПРЕОБРАЗОВАНИЕ for element in ИСТОЧНИК if УСЛОВИЕ]
читается это слева направо, что важно когда циклов больше 1.
2) принцип работы операций у листкомпс и генэксп одинаков, синтаксически различаются скобками
3) компсы (листкомпс, сеткомпс, дикткомпс) в результате своей работы формируют соответствующую коллекцию и занимают память
4) переменные созданные внутри компсов или генэкспа недоступны извне
5) генэксп вернет объект, а не коллекцию! при создании объекта он проверит источник, что может быть критично, если это какая то функция. Если источник не валидный то ошибка упадет при создании генератора, а не при попытке получить значение
6) генэксп ленивый, то есть ничего не делает и не занимает память пока не потребуется значение. Сгенерировав значение снова засыпает пока опять не попросят новое.
7) генэксп одноразовый, при исчерпании начинает бросать исключение, которое мы не увидим, если используем генератор в цикле for
8) генэксп может потенциально генерировать бесконечные последовательности, но он ничего не знает о порядке элементов или о их количестве (нет len)
Лично мое мнение - если вам не нужна длина, слайсы, индексы, то нужно использовать генэскп, не только из-за экономии памяти, но и из-за ленивости, экономии процессорного времени.
Естественно важно помнить что даже pep-8 и дзен - это не закон, а рекомендации, наша конкретная реализация и подход должны диктоваться имеющимися условиями и решаемой задачей.
Полезные ссылки:
#list-comprehensions
Присоединяйтесь к помощи каналу, будет интересно)
✔️Бусти
Будь первым везде и всегда, включай уведомления о новых выпусках 🔔
#Python #PythonRussian #PyCharm
1 view
2280
668
2 months ago 00:44:41 1
Ghost Recon Wildlands #40 Совсем с ума сошли, камикадзе несчастные
2 months ago 00:00:00 1
🌞СТРИМ АЙБОЛИТА / РОЗЫГРЫШ - МЦ-572 ’АСТАРТА’ - НАВСЕГДА / ИГРА С ПОДПИСЧИКАМИ
2 months ago 00:16:54 1
Солдатики Зеленского заканчиваются
2 months ago 00:17:15 1
ПОБЕДИЛИ ПРОДАЖНЫХ ПОЛИЦЕЙСКИХ [59] РУССКАЯ ОБЩИНА #важное #община #новости #россия #втопе #дружина
2 months ago 02:11:45 1
Трехлебов А.В 2006 г Часть 1,2 2024,2025 #трехлебов #nasledienashihpredkov #наследие_наших_предков
2 months ago 00:00:00 1
. [12] DLC PERSEUS MANDATE
2 months ago 00:45:47 3
Выживалка в Dead by Daylight #2
2 months ago 00:19:57 1
СПЕЦНАЗ В БЕСЛАНЕ | Группа Вымпел | Обзор снаряжения
2 months ago 00:39:14 1
Стрелковое оружие Второй мировой. Пистолеты-пулеметы
2 months ago 00:38:10 1
Стрелковое оружие Второй мировой. Винтовка Мосина, Маузер 98к, советский ТТ
2 months ago 00:31:28 1.1K
Профессиональная установка и пристрелка ОПТИКИ. Часть 1: установка и настройка оптического прицела
2 months ago 00:04:50 1
Случаи, когда роботы выражали свое мнение. Захват мира роботами, восстание машин. Мнение Роботов
2 months ago 00:11:18 1
Крошечный рай на Земле, где нет ни тюрем, ни армии, ни своих денег
2 months ago 00:10:11 1
ДТК ЗАКРЫТОГО ТИПА! НУЖЕН ИЛИ НЕТ? РАЗБИРАЕМСЯ ВМЕСТЕ С МАРАТОМ СУТАЕВЫМ И КОМАНДОЙ РОТОР 43.
2 months ago 00:13:31 1
1000 дней ПОСЛЕ ядерной зимы - Выживание.
2 months ago 00:22:10 1
ПОЛИЦЕЙСКИЙ ПОМОГ МИГРАНТУ - УДАЛИТЬ УЛИКУ? [58] РУССКАЯ ОБЩИНА #важное #новости #община #россия