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

ПостЕсли вам приходилось работать с bash, например парсить логи, вы наверняка видели или использовали команды следующего вид…

4 сентября 2023
К
Коробка с питоном
Ссылка
нажмите — покажем
Если вам приходилось работать с bash, например парсить логи, вы наверняка видели или использовали команды следующего вида: cat app.log | grep 'exception' | awk '{ print $2 }' Здесь мы последовательно считываем содержимое файла app.log, фильтруем по подстроке exception и выводим вторую колонку. Символ |, которая разделяет команды называется "пайпом" - он перенаправляет вывод из одной команды в другую, а вся эта конструкция в целом называется конвейером, и она очень часто используется в функциональном программировании. В Elixir есть оператор конвейера |> который позволяет передавать результат выполнения левого выражения в правое. Это позволяет делать вот такие штуки: 1..10 |> Enum.map(fn x -> x * 2 end) |> Enum.filter(fn x -> x > 10 end) [12, 14, 16, 18, 20] Здесь мы генерируем список от 1 до 10, умножаем каждый элемент на 2 и фильтруем только те, которые больше 10. Согласитесь, так удобнее работать с коллекциями, особенно там где данных много и их хочется как-то отфильтровать. В случае использования конвейеров нам больше не надо строить громоздкие циклы, а код прост и понятен. Если вам интересно. как можно сделать такое в Python, то для вас есть библиотека Pipe. Реализация очень простая - библиотека добавляет класс Pipe который переопределяет оператор |. Далее мы оборачиваем наши функции в этот класс и можем строить конвейеры! Например, вот так мы можем получить сумму товаров, цена которых больше тысячи: from typing import NamedTuple from pipe import select, where class Product(NamedTuple): name: str price: int products = [Product("choco", 123), Product("auto", 10000), Product("photo", 1200)] sum( products | select(lambda product: product.price) | where(lambda x: x > 1000) ) # 11200 #библиотека
13 · 1K ·

Рядом в ленте

ККоробка с питономТианголо (создатель FastAPI) предложил новый PEP 727, который позволяет стандартизировать механизм документирования параметров. Причина проста - существует многККоробка с питономНедавно мой знакомый @nesclass (можете ему писать по теме доклада) выступал c докладом "Асинхронное варение MongoDB в Python" на Pytup. Автор объяснил наглядно
это сообщение
ККоробка с питономПомните, я рассказывал про такой фреимворк как Propan? В общем, программа Propan удаляется на смену Propan пришел FastStream, и весь новый функционал будет попаККоробка с питономНа второе октября намечен релиз Python 3.12, поэтому Никита Соболев (opensource разработчик и контрибьютор в сpython) рассказывает про новинки в новой версии и
ККоробка с питономКоробка с питоном@boxwithpython · канал · Технологии
488подписчиков154постов в индексе
Лента площадки Открыть в Telegram

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

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