Python академия
7.73K subscribers
2.31K photos
6 videos
268 links
Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Download Telegram
Самый частый элемент

Этот короткий скрипт вернёт элемент, чаще всего встречающийся в списке.

Используются продвинутые параметры встроенной функции max():

• первым аргументом она получает множество из элементов списка (помним, что в множестве все элементы уникальны);
• затем применяет к каждому из них функцию count, подсчитывающую, сколько раз элемент встречается в списке;
• после этого возвращает элемент множества, который имеет больше всего «попаданий».

В качестве аргумента можно использовать списки, кортежи и строки.

Подписывайтесь на канал 👉@pythonofff
🔥5👍4
Query JSON

JMESpath – это язык запросов для JSON, который позволяет получать необходимые данные из документа или словаря JSON. Библиотека доступна как для Python, так и для других ЯП, что расширяет ее возможности.

Подписывайтесь на канал 👉@pythonofff
👍3
Использование * и ** для распаковки аргументов функций

Некоторые функции требуют длинного списка аргументов. Этого следует избегать (например, с помощью классов данных), хотя это не всегда зависит от вас. Существует другой вариант – создать словарь с именованными аргументами и передать его функции. Так ваш код станет более читабельным.

Распаковать словарь можно, используя префикс **:

Подписывайтесь на канал 👉@pythonofff
👍6
Распечатывание ежемесячного календаря

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

Подписывайтесь на канал 👉@pythonofff
👍9
Get Method для словаря

Большинство разработчиков используют скобки, чтобы получить значение из словаря. Но сейчас рекомендуется использовать Get method.

При использовании метода скобок выдается ошибка, если ключ отсутствует. С помощью Get method вы получите “None” .

Подписывайтесь на канал 👉@pythonofff
👍5🤯1
Печать в одной строке

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

Подписывайтесь на канал 👉@pythonofff
👍4
Списковое включение (быстрый способ)

Списковое включение — самый эффективный способ итерации любого списка. Это итерирование однострочного списка с включением в него цикла. Посмотрите приведенный ниже пример кода, чтобы понять, как это работает.

Подписывайтесь на канал 👉@pythonofff
👍6
Применение функции ко всем элементам в списке

Этот прием полезен в тех случаях, когда нужно применить функцию ко всем элементам списка, а не к каждому отдельно.

Подписывайтесь на канал 👉@pythonofff
👍6
Объединить два словаря

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

Обратите внимание на то, что значения итогового словаря будут зависеть от порядка исходных словарей в функциях: если переставить местами словари a и b, значение ключа 'y' изменится на 2.

Подписывайтесь на канал 👉@pythonofff
👍4
Как стать Python-разработчиком, за которым охотятся работодатели?

Пройти бесплатные вводные курсы, чтобы познакомиться с профессией
Начать учиться в группе с наставником и присоединиться к комьюнити из 26 000 айтишников
Выполнить 4 крутых проекта для портфолио, поучаствовать в Open Source 
Подготовиться к трудоустройству по программе Карьерного трека

Начните сейчас!
👍3
Проверка строки на палиндром

Простой вариант этого кода проверяет, является ли слово без пробелов и знаков препинания, написанное в одном регистре, палиндромом.

Более сложный вариант, который сможет проверить строку «А роза упала на лапу Азора», предлагаем написать самостоятельно. Общая идея: свести сложную строку к простой, хоть и длинной 'арозаупаланалапуазора'. Вам пригодятся функции строк .lower(), .join(), а также, возможно, преобразование строки в список.

Подписывайтесь на канал 👉@pythonofff
👍7
Транспонирование матрицы

В простейшем случае двумерная матрица может быть задана списком из нескольких списков одинаковой длины, которые представляют собой строки матрицы. Если вам требуется «повернуть на 90 градусов» такую матрицу или превратить строки в столбцы (транспонировать, как говорят математики)

Обратите внимание, что в итоговом списке элементами (то есть строками новой матрицы) будут кортежи — так работает используемая здесь функция zip ().

Подписывайтесь на канал 👉@pythonofff
👍4
Выражения присваивания (Assignment expressions)
Python 3.8

Так же известный как «моржовый оператор» (walrus operator) — новый синтаксис, который позволит присваивать значения переменным внутри другого выражения. Это, наверное, самое известное и обсуждаемое из нововведений версии 3.8.

Целью введения оператора является повышение читаемости кода, поэтому использовать его (как и все остальные операторы) стоит не при первой же возможности, а только тогда, когда это уместно.

Подписывайтесь на канал 👉@pythonofff
👍2
Исключение из очереди

Класс collections.deque() это обобщение стеков и очередей и представляет собой двустороннюю очередь. Двусторонняя очередь deque() поддерживает поточно-ориентированные, эффективные по памяти операции добавления и извлечения элементов последовательности с любой стороны с примерно одинаковой производительностью O(1) в любом направлении.

Подписывайтесь на канал 👉@pythonofff
👍7
Итерация next() для генераторов

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

Однако вместо этого можно использовать next(). Next берёт итератор, который будет хранить текущую позицию в памяти и перебирать список в фоновом режиме.

Подписывайтесь на канал 👉@pythonofff
👍2
Проверка на дубликаты

Этот простой скрипт проверяет, содержатся ли в списке повторяющиеся значения (дубликаты). Используется свойство множеств set, которые могут содержать только уникальные элементы.

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

Подписывайтесь на канал 👉@pythonofff
👍4
Преобразование изменяемых данных в неизменяемые

Изменяемые данные (например, словари или списки) — это структуры, к которым могут быть добавлены новые значения.

Неизменяемые данные, в противоположность изменяемым, после создания остаются неизменными. Посмотрите, как можно преобразовать изменяемый тип данных в неизменяемый.

Подписывайтесь на канал 👉@pythonofff
👍3
Counter

Ещё один прекрасный модуль из стандартной библиотеки — collections, и я хотел бы познакомить вас с collections.Counter. Используя Counter, легко получить счётчик списка. Это полезно для получения общего количества значений в данных, нулевого счёта данных и просмотра уникальных значений. В counter есть множество функций, которых нет в Pandas Series, что делает его значительно полезнее в определённых ситуациях

Подписывайтесь на канал 👉@pythonofff
👍6
Профилирование — это процесс, который помогает при работе с данными и их обработке.

Пожалуй, одна из самых известных Python-библиотек для этого – Pandas. Данная библиотека является довольно понятной в использовании и благодаря ей можно быстро выполнять анализ данных.

Кроме того, Pandas имеет встроенную функцию .plot() как часть класса DataFrame, что позволяет демонстрировать на графиках обрабатываемые данные.

Подписывайтесь на канал 👉@pythonofff
👍2🤔1
Подсказки типа

Python — это язык с динамической типизацией. Вам не нужно указывать тип данных при определении переменных, функций, классов и т.д.

Такой прием сокращает время разработки. Однако есть и более страшные вещи, чем ошибка при выполнении, вызванная простой проблемой ввода.

Подписывайтесь на канал 👉@pythonofff
👍2🤔1