Получение наибольших или наименьших чисел из списка
Представим, что у вас есть список с числами и необходимо получить указанное число наибольших или наименьших чисел из него.
Одно из решений данной задачи - использование встроенной библиотеки
#theory // Just Python
Представим, что у вас есть список с числами и необходимо получить указанное число наибольших или наименьших чисел из него.
Одно из решений данной задачи - использование встроенной библиотеки
heapq
.#theory // Just Python
Как найти разницу между двумя списками?
Иногда нужно узнать, какие элементы есть в одном списке, но отсутствуют в другом. Новички могут использовать циклы, но Python предлагает элегантный способ — множества (set).
Этот приём позволяет найти разницу за одну строку:
Итог:
Вычисляет разницу за одну строку.
Подходит для сравнения списков.
Упрощает анализ данных!
#theory // Just Python
Иногда нужно узнать, какие элементы есть в одном списке, но отсутствуют в другом. Новички могут использовать циклы, но Python предлагает элегантный способ — множества (set).
Этот приём позволяет найти разницу за одну строку:
set(list1)
- set(list2)
возвращает элементы, которые есть в list1
, но отсутствуют в list2
. Итог:
Вычисляет разницу за одну строку.
Подходит для сравнения списков.
Упрощает анализ данных!
#theory // Just Python
Функция filterfalse()
Функция filterfalse() модуля itertools создает итератор, который удаляет элементы из последовательности iterable до тех пор, пока функция predicate равна False или 0. Возвращается итератор с отобранными элементами.
Если predicate=None, функция вернет элементы, которые являются ложными.
Аргумент predicate это функция, принимающая один элемент последовательности и возвращающая bool значение.
#theory // Just Python
Функция filterfalse() модуля itertools создает итератор, который удаляет элементы из последовательности iterable до тех пор, пока функция predicate равна False или 0. Возвращается итератор с отобранными элементами.
Если predicate=None, функция вернет элементы, которые являются ложными.
Аргумент predicate это функция, принимающая один элемент последовательности и возвращающая bool значение.
#theory // Just Python
itertools.pairwise
#theory // Just Python
itertools.pairwise
возвращает пары соседних элементов из итерируемого объекта. Это полезно для сравнения, анализа трендов и работы с графами или координатами.#theory // Just Python
Мои коллеги из Яндекса создали сильнейшие IT каналы 🔥
🐍 Ghostly Python - Разбираем код, автоматизируем рутину, пишем ботов, скрипты и полезные утилиты. Все что нужно для уверенного старта в программировании на Python.
☕️ Easy Java - вскрываем Java изнутри. Все тонкости этого универсального языка в одном канале, врывайся!
😎 IT Syndicate - гигабайты свежего материала по всем направлениям. GameDev, InfoSec, Frontend - и это лишь малая часть..
Наше кредо — программирование не сложно, просто никто не объяснял нормально.
Please open Telegram to view this post
VIEW IN TELEGRAM
Класс Counter.deque()
При использовании класс deque из модуля collections мы работаем с очередью. Он позволяет добавлять и удалять элементы с обоих концов очереди.
В этом примере мы создаем объект deque, содержащий список фруктов. Затем мы добавляем элемент 'pear' в конец очереди с помощью метода append() и элемент 'grape' в начало очереди с помощью метода appendleft(). Конечный результат - очередь, содержащая фрукты в порядке 'grape', 'apple', 'banana', 'orange', 'pear'.
#theory // Just Python
При использовании класс deque из модуля collections мы работаем с очередью. Он позволяет добавлять и удалять элементы с обоих концов очереди.
В этом примере мы создаем объект deque, содержащий список фруктов. Затем мы добавляем элемент 'pear' в конец очереди с помощью метода append() и элемент 'grape' в начало очереди с помощью метода appendleft(). Конечный результат - очередь, содержащая фрукты в порядке 'grape', 'apple', 'banana', 'orange', 'pear'.
#theory // Just Python
itertools.batched
#theory // Just Python
itertools.batched
разбивает итерируемый объект на фиксированные группы. Это полезно для пакетной обработки данных, группировки и работы с потоками данных.#theory // Just Python
Антипаттерн недели: Использование переменных с плавающим значением в качестве условий
В Python числа с плавающей точкой (
Избегайте прямого сравнения
#theory // Just Python
В Python числа с плавающей точкой (
float
) могут вести себя неожиданно из-за погрешности вычислений. Это особенно критично при сравнении и использовании их в логических выражениях.Избегайте прямого сравнения
float
— используйте округление или math.isclose()
.#theory // Just Python
Генераторные выражения в Python
Для создания генераторов на скорую руку можно использовать выражения (как и для генераторов списка).
#theory // Just Python
Для создания генераторов на скорую руку можно использовать выражения (как и для генераторов списка).
#theory // Just Python
str.removeprefix
str.removeprefix удаляет указанный префикс из строки, если он присутствует. Это полезно для очистки и нормализации данных без лишних условий и срезов.
#theory // Just Python
str.removeprefix удаляет указанный префикс из строки, если он присутствует. Это полезно для очистки и нормализации данных без лишних условий и срезов.
#theory // Just Python
SDV - библиотека, разработанная учеными MIT, использующая алгоритмы машинного обучения для генерации различного рода таблиц при помощи анализа реальных данных и создания на их основе синтетических данных в Python.
Либа позволяет создать единичные таблицы, соединенные мульти-таблицы и секвентальные таблицы.
Пример кода:
В результате генерирует такую таблицу.
Ставится командой
Документация и примеры кода на Github
#theory // Just Python
Либа позволяет создать единичные таблицы, соединенные мульти-таблицы и секвентальные таблицы.
Пример кода:
from sdv.datasets.demo import download_demo
real_data, metadata = download_demo(
modality='single_table',
dataset_name='fake_hotel_guests')
В результате генерирует такую таблицу.
Ставится командой
pip install sdv
Документация и примеры кода на Github
#theory // Just Python
Пример кода с использованием glob
Модуль glob находит все пути, совпадающие с заданным шаблоном в соответствии с правилами, используемыми оболочкой Unix. Обрабатываются символы "*" (произвольное количество символов), "?" (один символ), и диапазоны символов с помощью []. Для использования тильды "~" и переменных окружения необходимо использовать os.path.expanduser() и os.path.expandvars().
#theory // Just Python
Модуль glob находит все пути, совпадающие с заданным шаблоном в соответствии с правилами, используемыми оболочкой Unix. Обрабатываются символы "*" (произвольное количество символов), "?" (один символ), и диапазоны символов с помощью []. Для использования тильды "~" и переменных окружения необходимо использовать os.path.expanduser() и os.path.expandvars().
#theory // Just Python
Ускорение компиляции с помощью numba
Если определённая часть твоего кода всё ещё работает медленно, попробуй библиотеку numba, чтобы компилировать код. numba ускоряет выполнение в 10-20 раз, так как компилирует код в машинные инструкции.
#theory // Just Python
Если определённая часть твоего кода всё ещё работает медленно, попробуй библиотеку numba, чтобы компилировать код. numba ускоряет выполнение в 10-20 раз, так как компилирует код в машинные инструкции.
#theory // Just Python
Pandas: Удаление дубликатов
#theory // Just Python
pandas.dropduplicates()
— метод в библиотеке pandas
, который используется для удаления дубликатов строк из DataFrame
. С помощью duplicated
ты можешь проверить, имеются ли дубликаты.#theory // Just Python
dict.setdefault
#theory // Just Python
dict.setdefault
возвращает значение по ключу, если он существует, или добавляет ключ со значением по умолчанию. Это полезно для группировки, счётчиков и инициализации вложенных структур.#theory // Just Python
Как объединить строки без цикла?
Когда нужно склеить несколько строк из списка в одну, новички часто используют цикл for и оператор +. Но в Python есть более быстрый и лаконичный способ — метод
Метод
Итог:
Работает быстро и читаемо.
Подходит для любых итерируемых объектов со строками.
#theory // Just Python
Когда нужно склеить несколько строк из списка в одну, новички часто используют цикл for и оператор +. Но в Python есть более быстрый и лаконичный способ — метод
.join()
.Метод
join()
принимает список строк и объединяет их через указанный разделитель. Это работает гораздо эффективнее циклов и особенно полезно при работе с большими объёмами текста. Итог:
.join()
— лучший способ объединения строк.Работает быстро и читаемо.
Подходит для любых итерируемых объектов со строками.
#theory // Just Python
enumerate и как он работает
#theory // Just Python
enumerate
добавляет индексы к элементам итерируемого объекта. Это полезно для одновременного доступа к элементу и его позиции в цикле.#theory // Just Python
Как быстро получить уникальные значения из списка?
Когда нужно найти все уникальные элементы в списке, новички часто перебирают элементы вручную и добавляют их в новый список. Но Python предлагает простое и эффективное решение — использовать
Множество (
Итог:
Отлично подходит для быстрой фильтрации!
#theory // Just Python
Когда нужно найти все уникальные элементы в списке, новички часто перебирают элементы вручную и добавляют их в новый список. Но Python предлагает простое и эффективное решение — использовать
set
.Множество (
set
) автоматически удаляет все повторяющиеся значения. А если нужно сохранить порядок, можно дополнительно применить dict.fromkeys().
Всё это делается буквально в одну строку! Итог:
set()
— простой способ убрать дубликаты.dict.fromkeys()
сохраняет порядок элементов.Отлично подходит для быстрой фильтрации!
#theory // Just Python
MQL — переводит запрос, описанный обычными словами в код на SQL при помощи нейросетей.
То есть пишешь ему, например:
И он вам выдаёт
#theory // Just Python
То есть пишешь ему, например:
все книги которые взяли студенты 2 курса за последнюю неделю
И он вам выдаёт
SELECT * FROM ...
и тд.#theory // Just Python
Как быстро проверить, является ли строка числом?
При обработке пользовательского ввода важно понимать, содержит ли строка число. Новички могут пытаться использовать
Метод
Итог
Полезен при валидации ввода.
Работает только для положительных целых чисел.
#theory // Just Python
При обработке пользовательского ввода важно понимать, содержит ли строка число. Новички могут пытаться использовать
try-except
или проверять вручную, но есть более элегантное решение — метод .isdigit()
.Метод
.isdigit()
возвращает True
, если строка состоит только из цифр. Это удобно, когда нужно, например, убедиться, что пользователь ввёл возраст или ID
. Итог
.isdigit()
— простой способ проверить, состоит ли строка только из цифр.Полезен при валидации ввода.
Работает только для положительных целых чисел.
#theory // Just Python