Веб-версияОткрыть в Telegram

ПостНа сегодня расскажу ещё пару рецептов с more_itertools.

3 ноября 2023
К
Коробка с питоном
ОтветЕсли обычного itertools вам мало, то можно использовать more-itertools. Эта библиотека добавляет огромное количество функций для работы с итераторами. На практике всеми ими не всегда пользуются, поэтому я выделю некоторые из тех, которые сам использую часто. Например, вот так можно разделить списо
На сегодня расскажу ещё пару рецептов с more_itertools. 1) map_if работает как обычный map, но применяет функцию на элемент только если оно попадает под условие. Например, вот так мы можем возвести в квадрат только те числа, которые делятся на 2 нацело: example = [1, 2, 3, 4, 5, 6, 7, 8] list(map_if(example, lambda x: x % 2 == 0, lambda x: x * x)) # [1, 4, 3, 16, 5, 36, 7, 64] 2) Получить последний элемент можно при помощи last. Возникает вопрос а зачем он существует, если можно указать sequence[-1]? Ответом является то, что last позволяет указать, что ему возвращать, если элементов в коллекции нет: last([1, 2, 3]) # Очевидно получим 3 last([], 0) # Список пустой, но получим 0 [][-1] # Получим IndexError Ещё есть first - как понятно из названия, он получает первый элемент. 3) map_except тоже работает как map, но умеет игнорировать ошибки. Например, мы хотим получить только те элементы, которые получилось привести к целому числу: example = [1, "1", "2", "test", "three", object, 4.0] list(map_except(int, example, ValueError, TypeError)) # [1, 1, 2, 4] 4) Ну и в конце про take - он просто берет N элементов из итерируемого объекта: example = range(10) take(3, example) # [0, 1, 2] take(20, example) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - если больше, возьмет доступные #itertools #more_itertools #библиотека #рецепт
13 · 903 ·

Рядом в ленте

ККоробка с питономНедавно пришлось писать конвертор который транслировал Markdown в довольно специфичный формат. Была следующая идея - мне нужен парсер, который перегонит MarkdowККоробка с питономПока я спал, руководящий совет языка принял PEP 703 (Making the Global Interpreter Lock Optional in CPython). Кратко о том, о чём говорится в посте: 1. Руководя
это сообщение
ККоробка с питономВ одном чатике встретил проект fakeredis, реализующий Redis-сервер на питоне, который можно использовать для тестов. Очевидно, чтобы не таскать для тестов настоККоробка с питономPSF и JetBrains запустили своё ежегодное исследование Python Developers Survey 2023. Погнали заполнять! 👇 https://survey.alchemer.com/s3/7554174/python-develope
ККоробка с питономКоробка с питоном@boxwithpython · канал · Технологии
488подписчиков154постов в индексе
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем