Just Python
11.2K subscribers
3.66K photos
11 videos
3.66K links
🐍Простое изучение Python.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/justpython_it

РКН: clck.ru/3MnbSc
Download Telegram
total_ordering и его применение

functools.total_ordering автоматически добавляет недостающие методы сравнения, если определить хотя бы __eq__ и один из <, <=, >, >=. Это полезно для упрощения классов с порядком.

#theory // Just Python
time.thread_time()

time.thread_time() возвращает процессорное время текущего потока. Это полезно для точного измерения производительности одного потока, исключая время ожидания или сна.

#theory // Just Python
Рисование без рук — управляй курсором глазами!

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

Как это работает?
1. MediaPipe FaceMesh отслеживает положение глаз.
2. Пересчитывает координаты в масштаб экрана.
3. Перемещает курсор в точку, куда смотрите.

Что можно делать?
1. Рисовать в Paint глазами (просто добавьте pyautogui.click()).
2. Играть без рук (управлять мышкой во время игры).
3. Помочь людям с ограниченными возможностями (альтернатива трекпаду).

#theory // Just Python
Полезные методы словаря

Существуют множество полезных методов словаря. Например, метод keys() возвращает все ключи словаря. values() возвращает все значения. items() возвращает пары ключ-значение, а update() обновляет словарь, добавляя или заменяя пары ключ-значение.

#theory // Just Python
Получение наибольших или наименьших чисел из списка

Представим, что у вас есть список с числами и необходимо получить указанное число наибольших или наименьших чисел из него.
Одно из решений данной задачи - использование встроенной библиотеки heapq.

#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
itertools.pairwise

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
itertools.batched

itertools.batched разбивает итерируемый объект на фиксированные группы. Это полезно для пакетной обработки данных, группировки и работы с потоками данных.

#theory // Just Python
Антипаттерн недели: Использование переменных с плавающим значением в качестве условий

В Python числа с плавающей точкой (float) могут вести себя неожиданно из-за погрешности вычислений. Это особенно критично при сравнении и использовании их в логических выражениях.

Избегайте прямого сравнения float — используйте округление или math.isclose().

#theory // Just Python
Генераторные выражения в Python

Для создания генераторов на скорую руку можно использовать выражения (как и для генераторов списка).

#theory // Just Python
str.removeprefix

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

#theory // Just Python
SDV - библиотека, разработанная учеными MIT, использующая алгоритмы машинного обучения для генерации различного рода таблиц при помощи анализа реальных данных и создания на их основе синтетических данных в 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
Ускорение компиляции с помощью numba

Если определённая часть твоего кода всё ещё работает медленно, попробуй библиотеку numba, чтобы компилировать код. numba ускоряет выполнение в 10-20 раз, так как компилирует код в машинные инструкции.

#theory // Just Python
Pandas: Удаление дубликатов

pandas.dropduplicates() — метод в библиотеке pandas, который используется для удаления дубликатов строк из DataFrame. С помощью duplicated ты можешь проверить, имеются ли дубликаты.

#theory // Just Python
dict.setdefault

dict.setdefault возвращает значение по ключу, если он существует, или добавляет ключ со значением по умолчанию. Это полезно для группировки, счётчиков и инициализации вложенных структур.

#theory // Just Python
Как объединить строки без цикла?

Когда нужно склеить несколько строк из списка в одну, новички часто используют цикл for и оператор +. Но в Python есть более быстрый и лаконичный способ — метод .join().

Метод join() принимает список строк и объединяет их через указанный разделитель. Это работает гораздо эффективнее циклов и особенно полезно при работе с большими объёмами текста.

Итог:
.join() — лучший способ объединения строк.
Работает быстро и читаемо.
Подходит для любых итерируемых объектов со строками.

#theory // Just Python