Pydash: куча недостающих утилит Python

Функциональная реализация Python

Мотивация

Вы когда-нибудь пробовали сгладить такой вложенный массив?

Если вам было сложно сгладить такой вложенный массив, вы были бы счастливы найти такое элегантное решение:

Изображение по автору

… Или получить объект глубоко вложенного словаря, подобного приведенному ниже, в одной строке кода.

Изображение по автору

Если вы ищете библиотеку, которая предоставляет полезные утилиты для работы с объектами Python, как указано выше, pydash будет вашей библиотекой.

Что такое пыдаш?

Pydash - это кухонная раковина из служебных библиотек Python для функционального выполнения « всякой всячины».

Чтобы установить pydash, убедитесь, что ваша версия Python ≥ 3.6, затем введите:

pip install pydash

Список

Свести список Python

Вы можете сгладить вложенный список Python, используя py_.flattenметод:

Изображение по автору

Что, если ваш список глубоко вложен, как показано ниже?

Вот тогда и py_.flatten_deepпригодится метод:

Изображение по автору

Разделить элементы на группы

Если вы можете сгладить список, можете ли вы также превратить сглаженный список во вложенный? Да, это можно сделать с помощью py_.chunkметода:

Изображение по автору

Хороший! Элементы в списке разделены на группы по 2.

Словарь

Пропустить атрибут словаря

Чтобы исключить атрибут из словаря, мы можем использовать py_.omitметод:

Изображение по автору

Получить атрибут вложенного словаря

Как вы получаете priceиз appleот Walmartкоторый in seasonво вложенном словаре , как показано ниже?

Обычно, чтобы получить эту информацию, нужно использовать множество скобок:

[2, 4]

Изображение по автору

Прохладный! Вы также можете получить элемент в массиве, используя [index]:

2

Найти указатель элемента с помощью функции

Чтобы получить индекс элемента в списке с помощью функции, используйте py_.find_indexметод:

Изображение по автору

Найдите объекты с подходящим стилем

py_.find_indexМетод позволяет получить индекс объекта , который соответствует определенному шаблону. Но что, если вы хотите получить элементы в списке, а не в индексе?

Это можно сделать с помощью py_.filterметода:

Изображение по автору

Получить значение вложенного объекта

Иногда ваш список словарей может быть вложенным, как показано ниже. Как получить tasteатрибут apple?

К счастью, это легко сделать с помощью py_.map_метода:

Изображение по автору

Выполнить функцию n раз

Используя этот py_.timesметод, вы можете выполнить функцию n раз . Этот метод является хорошей альтернативой циклу for.

Изображение по автору

Цепочка

Методы Пидаша

Иногда вам может понадобиться применить к объекту несколько методов. Можете ли вы применить все методы одновременно, вместо того, чтобы писать несколько строк кода?

Вот тогда и пригодится цепочка методов. Чтобы применить цепочку методов в объекте, используйте py_.chainметод:

Изображение по автору

Обратите внимание, что выполнение приведенного выше кода не даст нам значения:

<pydash.chaining.Chain at 0x7f8d256b0dc0>

Изображение по автору

Это называется ленивым вычислением . Ленивая оценка удерживает оценку выражения до тех пор, пока не потребуется его значение, что позволяет избежать повторной оценки.

Индивидуальные методы

Если вы хотите использовать свои собственные методы вместо методов pydash, используйте mapметод:

Изображение по автору

Создание ценности

Чтобы заменить начальное значение цепочки другим значением, используйте plantметод:

Изображение по автору

Прохладный! Заменим ['apple', 'orange', 'grapes']на ['apple', 'orange']при использовании той же цепочки!

Заключение

Поздравляю! Вы только что узнали, как эффективно управлять объектами Python с помощью pydash. Я надеюсь, что эта статья добавит еще несколько полезных инструментов в ваш набор инструментов Python.

Существует так много других интересных методов, которые предоставляет pydash, о которых я не мог рассказать в этой статье. Я рекомендую вам ознакомиться со справочником API pydash .

Не стесняйтесь форкнуть и поиграть с кодом для этой статьи в этом репозитории Github:

Мне нравится писать об основных концепциях науки о данных и играть с различными алгоритмами и инструментами анализа данных. Вы можете связаться со мной в LinkedIn и Twitter .

Пометьте это репо, если хотите проверить коды всех написанных мною статей. Следуйте за мной на Medium, чтобы быть в курсе моих последних статей по науке о данных, таких как:

Suggested posts

Как бесплатно запускать плагины ChatGPT с помощью Langchain

Как бесплатно запускать плагины ChatGPT с помощью Langchain

Вы, должно быть, слышали обо всех новых мощных плагинах ChatGPT, таких как Browser, Code Interpreter и т. д. Но есть проблема: доступ к плагинам ограничен списком ожидания, и поэтому многие не имеют к нему доступа.

Мои наиболее используемые ресурсы кодирования

Мои наиболее используемые ресурсы кодирования

На этой неделе я получил электронное письмо от участника ежедневного списка рассылки. Они хотели знать: какие ресурсы вы посещаете ежедневно, еженедельно и ежемесячно? Отличный вопрос! Я рад поделиться некоторыми мыслями о моем рабочем процессе и основных ресурсах, которые я использую.

Related posts

Финансирование удаления углерода в 24 финансовом году

Разбивка запросов на ассигнования Carbon180 по направлениям

Финансирование удаления углерода в 24 финансовом году

Элисон Ли, управляющий советник по связям с правительством Процесс ежегодных ассигнований федерального правительства занимает центральное место в наших усилиях по финансированию удаления двуокиси углерода (CDR). Каждый год Carbon180 направляет запросы в различные офисы Конгресса, чтобы помочь определить, куда пойдут доллары в следующем году.

Медленная эрозия: раскрытие того, как люди угасают в своей карьере

Медленная эрозия: раскрытие того, как люди угасают в своей карьере

В современном быстро меняющемся и конкурентном мире карьера играет важную роль в личностном росте, финансовой стабильности и общей удовлетворенности жизнью. Однако многие люди оказываются в безжалостном цикле застоя и неудовлетворенности, постепенно угасая в своей профессиональной жизни.

Убийство Джордана Нили и проблема «патриотического» расизма

Могут ли США сделать важный шаг и не приравнивать расистское поведение к тому, чтобы быть хорошим американцем?

Убийство Джордана Нили и проблема «патриотического» расизма

[Предупреждение: в этом эссе есть снимки экрана, на которых люди восхваляют убийцу Джордана Нили.] Сотрудники правоохранительных органов наконец — и, возможно, неохотно — предъявили обвинение в этом убийстве Дэниелу Пенни, человеку, который душил Джордана Нили, пока тот не умер.

местоимения очень страшные

Это поражает меня Внезапно, как это часто бывает, Это снова и снова на полпути <Нет, не то, что в Тихом океане, ты темно-бордовый, то, что на карнавале> Каждый громкий заголовок…..