Рассмотрим обязательные для понимания и использования киллер-фичи 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
1737
505
5 months ago 00:51:51 1
FPV-революция: как дроны-камикадзе изменили ситуацию на фронте / Редакция
5 months ago 00:20:19 1
Такер Карлсон, Интервью с Джеффри Саксом Jeffrey Sachs: The Untold History of the Cold War
5 months ago 00:13:45 1
ТОП 5 РАСТЕНИЙ КОТОРЫЕ ИЗМЕНЯТ МИР
5 months ago 00:30:05 1
Такер Карлсон, Интервью с Джеффри Саксом part 2 часть 2
5 months ago 00:00:00 1
Shadow of the Tomb Raider: Definitive Edition - Лара в поисках приключений - №3
5 months ago 00:14:50 1
Война на Украине. Карта СВО, численность. День за днем. (749 дней)
5 months ago 00:22:42 1
Новая КОСМИЧЕСКАЯ ГОНКА УЖЕ НАЧАЛАСЬ? Starship Илона Маска и новая эра в космонавтике
5 months ago 00:20:19 4
Такер Карлсон & Джеффри Саксом - Правдивая История о Нато. Ну ОЧЕНЬ ИНТЕРЕСНО!!!
5 months ago 00:25:10 1
Тактические двойки и тройки | Штурм здания на лестнице и в окопе | Боевые порядки и применение
5 months ago 00:03:03 1
ГШГ-МВ 7,62
5 months ago 00:01:39 1
Сериал «Элементарно», 4 сезон, 9 серия, 2016 год.
5 months ago 00:06:03 1
Главные промышленные проекты ПМЭФ-24. Новые производства, Lada – Iskra, Поезд для ВСМ и др. новинки
5 months ago 00:06:25 1
Warframe топ 3 основных оружия для новичка который только начал играть в варфрейм