ТОП 8 Редких и Удобных фишек в Python

preview_player
Показать описание

В данном видео рассмотрим 8 интересных фишек Python, о которых редко говорят. К примеру тот же JMESpath и Dateutil. Некоторые темы, рассмотренные в видео вы скорее всего знаете, но даже там я пытаюсь дать такие примеры, которые позволят вам ещё глубже понять как это работает.

Тайм-коды:
0:00 - Аргумент * в функциях Python
2:07 - Удобный парсер словарей и JSON объектов
5:12 - Несколько странных вещей с словарями Python
6:06 - Как упаковать классы и экземпляры в словари Python?
7:09 - Как узнать частоту повторений в коллекции Python?
8:10 - Цепочка выполнений в условиях Python
8:41 - Dateutil - Парсим дату из логов и обычных строк
9:24 - Интересные примеры с функцией map
10:15 - Как работает тернарный оператор в Python?
Рекомендации по теме
Комментарии
Автор

Этот канал - настоящий клад для новичка в python, спасибо большое!

SitVey
Автор

Не совсем понял, как сторонние библиотеки относятся к "фишкам питона". Да, либы крутые, не спорю, но в отличии от Countrer они не являются частью стандартной поставки питона, так логичнее их вынести в серию видосов "непопулярные но крутые либы" или что-то в этом духе.

На тему словарей - можно просто сказать что ключём должен быть хэшируемый объект, а значением любой объект

map не то чтобы редкая история

Тернарка тоже не очень часто используется, особенно там где не надо

Keywords only arguments (только именнованые аргументы) - вещь +- редкая, но когда говорят про неё, стоит упоминать про только позиционные аргументы, которые нельзя через имя передать, которые позволяют писать функции, в которых имена переменных не очень то важны, и надо не дать их передавать через имя чтобы не ломать обратную совместимость при смене имени

vlatterran
Автор

Здравствуйте, спасибо! Реально полезно, многое не знал. Хотелось бы почаще видеть обзор разных полезных библиотек)))

lucky_user
Автор

jmespath наверное будет отличным инструментом для работы с иерархическими списками/деревьями в формате json

AlexandrSpirit
Автор

Еще интересный момент на счет словарей:
Экземпляр класса может быть именно ключом словаря а не только значением, это реализуется переопределением метода __hash__ () в классе,
так как внутри реализации словарь хранит не только сам объект в качестве ключа но и его хэш, при обращении сначала идет поиск по хэшу а после уже по имени.
Т.е главное требование к ключам - чтоб они были хешируемые ( ним можно было применить функцию hash() )

Макс-цхч
Автор

Классно, я знал только одну из всех map не в счет, там понятно ))

antonkratinov
Автор

Получаем нан, а потом неделю ищем, почему в бд странные записи или почему падают эксепшены 👍

С джсоном актуально только для маленького скрипта. Если нужна валидация и нормальный вид, то пайдантик - это лучшая штука )

snzzle
Автор

Я бы не назвал обзор сторонних библиотек "Фишками Python". С таким успехом можно сделать видео на фишек Python и просто по очереди обозревать пакеты в pip по алфавиту.

Далее по порядку:
1. "Аргумент * в функциях Python". Полезная штука для чистоты кода. Стоит обратить внимание, но не стоит злоупотреблять.
2. "jmespath" - сторонняя библиотека. Да и аргумент "лучше, чем пройти циклом for" такой себе. For конечно хуже будет, но забыли про удобный "list/dict comprehension".
3. "Типы данных в словарях". Нужно знать всем и ОБЯЗАТЕЛЬНО! Как говорится "Это база!".
4. "Упаковка классов и экземпляров классов". Это скорей не фишка, а дополнение к предыдущему пункту.
5. "Counter" из модуля "collections". Нужно знать ОБЯЗАТЕЛЬНО! Лично видел, как python-разработчик с 3-хлетним опытом пишет свой "велосипед" для такого подсчёта.
6. "Цепочка проверок if". Нужно знать и понимать. Но во всех проектах размера enterprise за такое бьют по попе. Каждая проверка содержать только одно очевидное условие, для объединения проверок в цепочку используем "and" и "or". "Понятное лучше, чем красивое"
7. "dateutil" - сторонняя библиотека. По этому в "фишки Python" не отнесу. Тем не менее лучше научиться парсить родными регулярками и тем же "datetime.strptime". На проекте вам не дадут импортить левую библиотеку только потому, что вы не умеете делать всё при помощи средств "из коробки".
8. "map". Нечего сказать. Нужно знать и понимать, где применять. Чем раньше узнаешь, тем лучше.
9. "Тернарный оператор". ОООЧЕНЬ полезная штука. Нужно знать и аккуратно применять. Не злоупотреблять возможностью вложенности такой структуры. Помним: "Понятное лучше, чем красивое"

За исключением обзора сторонних библиотек всё просто замечательно!
Такой формат удобен и крут потому, что некоторые могут просто не знать о существовании тех или иных приёмов в Python. Узнав, что такое есть, уже могут пойти дальше погуглить документацию, примеры и более глубокие фишки той или иной технологии.

Вердикт: лютый жирный лайк и требование "продолжения банкета" 😅 Старичкам тоже иногда полезно освежить в памяти азы, вспомнить забытые приёмчики, или даже обнаружить то, что пропустил ранее 😂

HIMixoid
Автор

Ничего кроме map не знал=( респект автору, вы молодец =)

IvanIvanov-dhsg
Автор

знал фишки про сравнения типо 1 < x < 10 также про мап знаю но узнал недавно и еще знал про условия в одну строчку но не пользовался ими не понимал как работают остальное новое, жду новые полезные видео!

nighteen
Автор

По поводу map() в 9:24
Не вижу смысла определять:

def upper(s):

Это лишнее. Можно так:
mylist = list(map(str.upper, ['abc', 'test']))
вместо
mylist = list(map(upper, ['abc', 'test']))
т.е. str.upper вместо upper
map() - принимает не только встроенные функции языка, а и методы классов
Не благодарите.

И да.... очень полезный, познавательный материал.
СПАСИБО!!!

Igor_UA
Автор

круто, знал 4 фишки,
про коллекции слышал, но не использовал, спасибо буду знать

внесу свои пять копеек,
в числах с большим количеством нулей можно выделять разряды через подчеркивание.
например, миллион можно записать не как а как 1_000_000

ДмитрийЕсюнин
Автор

3:10 - а можно просто взять list comrehansion
De gustibus non est dispuntadum - о вкусах не спорят, не следует

darksniper
Автор

Еще в последнем примере можно не создавать функцию отдельно а написать либо люмбду либо str.uppper без скобочек

goldenboy
Автор

Если знать английский и уметь пользоваться гуглом, то в инете полно статей про эти и другие "фишки". Но ленивые русскоязычные прогеры только на ютубе и могут найти инфу :)

saper
Автор

Не знал все, кроме тернарного оператора. Спасибо за видео!

akimidrisov
Автор

Цепочку значений, мне кажется, все знают, а if и for в одну строку должен освоить каждый, я считаю

РоманБурч-яе
Автор

Про jmespath тоже хотел написать, какая разница, мы сделаем цикл который будет бегать по json или в импортированной библиотеке это сделают за нас. Но, ответ меня убедил, сегодня полезу ковырять библиотеку, как-раз пилю проект связанный с mongodb, а это сплошной json

gilman
Автор

Довольно полезное видео, однако все фишки, кроме первых двух, знал, однако для новичков будет топ! Лайк

spacehalone
Автор

Полезные фишки использования библиотек, остальные внутренние фичи уже были известны)

nikolaylavrov