Python/ django
58.9K subscribers
2.07K photos
61 videos
47 files
2.79K links
по всем вопросам @haarrp

@itchannels_telegram - 🔥 все ит-каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
加入频道
🐍 7 “бесполезных” функций Python, которые на самом деле полезны

Инструменты из стандартной библиотеки, которые могут удивить:

1. textwrap.dedent() — удаляет отступы у многострочного текста.

import textwrap
text = textwrap.dedent(\"\"\"
Привет!
Это текст с отступами.
\"\"\").strip()
print(text)


2. difflib.get_close_matches() — находит похожие строки.

import difflib
words = ["python", "java", "javascript"]
print(difflib.get_close_matches("javascrip", words))


3. uuid.uuid4() — генерирует уникальный ID.

import uuid
print(uuid.uuid4())


4. shutil.get_terminal_size() — узнаёт размеры терминала.

import shutil
columns, rows = shutil.get_terminal_size()
print(f"Размер терминала: {columns}x{rows}")


5. functools.lru_cache() — кэширует результаты функции.

from functools import lru_cache
@lru_cache(maxsize=None)
def fib(n):
if n < 2:
return n
return fib(n-1) fib(n-2)
print(fib(100))


6. itertools.groupby() — группирует элементы по ключу.

from itertools import groupby
data = [('fruit', 'apple'), ('fruit', 'banana'), ('veg', 'carrot')]
for key, group in groupby(data, lambda x: x[0]):
print(key, list(group))


7. contextlib.suppress() — элегантная альтернатива try-except.

from contextlib import suppress
with suppress(FileNotFoundError):
open("not_exist.txt")


@pythonl
😂 Жиза

@pythonl
🖥 less_slow.py — Python, который не тормозит

Многие считают Python медленным, но это не всегда правда.
Ash Vardanyan в рамках проекта Less Slow показывает, как писать быстрый и эффективный код даже на Python — без магии, но с пониманием.

🐍 Что в проекте:
🔹 pandas vs polars — что быстрее при работе с миллионами строк
🔹 Использование Numba, Cython, PyO3, rust bindings
🔹 Работа с нативными типами, векторизация и zero-copy
🔹 Сериализация без боли: сравнение MessagePack, Arrow, Parquet
🔹 Сравнение аллокаторов, подходов к I/O и нагрузочным тестам
🔹 Ускорение парсинга JSON: orjson, yyjson, simdjson, ujson
🔹 Как обойти GIL и не платить за удобство интерпретатора

📦 Библиотеки и техники:
Numba, Cython, cffi, maturin
simdjson, orjson, polars
pyarrow, msgspec, blosc2, memoryview
Работа с mmap, zero-copy, JIT-компиляция, py-spy, perf

📈 Кому подойдёт:
Тем, кто пишет ETL, пайплайны или ML/AI обработку

Кто работает с большими объёмами данных или бинарными файлами

Кто хочет “оптимизировать до безобразия” и понять, как работает Python под капотом

В серии есть еще 2 крутых проекта:

🖥 less_slow.cpp — C++ без тормозов: ассемблер, кеши, SIMD, аллокации, парсинг JSON и трюки с памятью
👉 github.com/ashvardanian/less_slow.cpp

👣 less_slow.rs — продвинутый Rust: сравнение async/sync, SIMD, кеш-френдли структуры, быстрые сериализации
👉 github.com/ashvardanian/less_slow.rs


📚 Репозиторий:

💡 Даже если ты не используешь всё это каждый день — ты точно станешь писать лучший Python-код.

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM