Media is too big
VIEW IN TELEGRAM
Как устроены хэш-таблицы
HashSet — это самая популярная структура данных, используемая в программировании. Она позволяет проверять в ней наличие любого элемента за
В этом видео вы разберетесь, как она устроена и что позволяет ей быстро перебирать массив данных. Вы также узнаете, как модифицировать ее так, чтобы получить хэш-таблицу — структуру данных, хранящую пары ключ-значение. Обе эти структуры данных очень популярны и используются в любом проекте.
А еще на их знание очень часто задают вопросы на собеседовании, поэтому три самых популярных из них также разбираются в этом видео.
#видео #основы #структурыданных
HashSet — это самая популярная структура данных, используемая в программировании. Она позволяет проверять в ней наличие любого элемента за
О(1) времени. В этом видео вы разберетесь, как она устроена и что позволяет ей быстро перебирать массив данных. Вы также узнаете, как модифицировать ее так, чтобы получить хэш-таблицу — структуру данных, хранящую пары ключ-значение. Обе эти структуры данных очень популярны и используются в любом проекте.
А еще на их знание очень часто задают вопросы на собеседовании, поэтому три самых популярных из них также разбираются в этом видео.
#видео #основы #структурыданных
Делаем красивый мониторинг чего угодно
Платформа Grafana — это популярный инструмент для визуализации, мониторинга, демонстрации и анализа данных. Платформа позволяет создавать дашборды, которые отображают различные показатели и процессы, в том числе в онлайн-режиме. Данные могут быть любыми — количество подписчиков в тг-канале, онлайн в игре или температура за окном.
Ловите гайд для начинающих, в котором подробней рассказывают про Grafana и учат использовать её в разных проектах.
#основы #grafana
Платформа Grafana — это популярный инструмент для визуализации, мониторинга, демонстрации и анализа данных. Платформа позволяет создавать дашборды, которые отображают различные показатели и процессы, в том числе в онлайн-режиме. Данные могут быть любыми — количество подписчиков в тг-канале, онлайн в игре или температура за окном.
Ловите гайд для начинающих, в котором подробней рассказывают про Grafana и учат использовать её в разных проектах.
#основы #grafana
Forwarded from Zen of Python
__init__.py в Python: зачем он нужен и как с ним работатьФайл
__init__.py играет ключевую роль в функционировании модулей и пакетов. В этой посте разберём, зачем нужен этот файл, как его использовать, и какие трюки можно с ним провернуть.__init__.py используется для обозначения директории как пакета Python. Пакет — это просто каталог, содержащий код, который можно импортировать. До Python 3.3 файл __init__.py был обязателен для того, чтобы Python распознавал директорию как пакет. Начиная с Python 3.3, это уже не строго обязательно благодаря PEP 420, который ввёл поддержку 'implicit namespace packages'.Тем не менее,
__init__.py всё ещё активно используется, потому что он позволяет:— Настроить импорты, переменные окружения и т.д.;
— Реализовать алиасы и проксировать импорты;
— Управлять логикой и поведением при импорте.
Пример: простой пакет с
__init__.py
my_package/
├── __init__.py
├── module1.py
└── module2.py
В
__init__.py можно явно указать, какие модули экспортируются:
from .module1 import func1
from .module2 import func2
__all__ = ['func1', 'func2']
Теперь из внешнего кода можно написать:
from my_package import func1, func2
И это сработает — благодаря тому, что
__init__.py делает интерфейс «плоским».Что можно писать в
__init__.pyВсё, что угодно — это обычный Python-скрипт. Вот что часто в нём делают:
1. Инициализация логики:
import logging
logging.getLogger(__name__).addHandler(logging.NullHandler())
2. Упрощение структуры:
# Вместо длинного:
from my_package.module1.submodule import ClassA
# можно:
from my_package import ClassA
И в
__init__.py:
from .module1.submodule import ClassA
3. Версионирование:
__version__ = "1.0.0"
4. Работа с абсолютными и относительными импортами:
Python различает абсолютные и относительные импорты. Благодаря
__init__.py, относительные импорты типа from . import module1 работают корректно.Когда
__init__.py не нуженPEP 420 ввёл концепцию namespace packages — это директории без
__init__.py, которые Python всё равно распознаёт как пакеты. Это удобно, когда вы хотите:— Распределить один пакет между несколькими каталогами (например, для плагинной архитектуры);
— Избежать необходимости в поддержке пустых
__init__.py.Пример:
project/
├── pkg/
│ └── subpkg1/
│ └── a.py
└── other/
└── pkg/
└── subpkg2/
└── b.py
Если в
pkg/ нет __init__.py, Python объединит содержимое в один namespace package. Когда
__init__.py обязателен— При тестировании и использовании
pytest (некоторые тест-раннеры не обнаруживают модули без `__init__.py`);— При работе с устаревшими инструментами;
— При построении плоского интерфейса пакета;
— Для поддержки специфичных путей и логики импорта.
#основы
Python Enhancement Proposals (PEPs)
PEP 420 – Implicit Namespace Packages | peps.python.org
Namespace packages are a mechanism for splitting a single Python package across multiple directories on disk. In current Python versions, an algorithm to compute the packages __path__ must be formulated. With the enhancement proposed here, the import ...
✍2❤2
Forwarded from Zen of Python
Byte of Python | Бесплатный учебник, ставший классикой
Сейчас лето, и при должном везении ваш работодатель слегка расслабился. Можно и книжку почитать.
«Укус питона» — известный бесплатный учебник, который можно скачать в форматах .pdf / .epub вместе с Python-скриптами прямо из репозитория автора Сварупа.
Спасибо @Chellbas за рекомендацию.
#основы
@zen_of_python
Сейчас лето, и при должном везении ваш работодатель слегка расслабился. Можно и книжку почитать.
«Укус питона» — известный бесплатный учебник, который можно скачать в форматах .pdf / .epub вместе с Python-скриптами прямо из репозитория автора Сварупа.
Спасибо @Chellbas за рекомендацию.
#основы
@zen_of_python
👍3
Деструктуризация в JavaScript
Деструктуризация — это удобный инструмент получения данныхв JS. Он позволяет «распаковывать» сразу много значений из массивов или объектов во множество переменных. Это, например, активно используется в React-хуках.
Простейший пример:
Здесь мы одной строкой задаем значения из массива сразу трём переменным —
Подробнее о возможностях и фишках деструктуризации можно прочитать в этой статье.
#javascript #основы
Деструктуризация — это удобный инструмент получения данныхв JS. Он позволяет «распаковывать» сразу много значений из массивов или объектов во множество переменных. Это, например, активно используется в React-хуках.
Простейший пример:
const timers = [10, 20, 30];
const [first, second, third] = timers;
Здесь мы одной строкой задаем значения из массива сразу трём переменным —
first, second, third.Подробнее о возможностях и фишках деструктуризации можно прочитать в этой статье.
#javascript #основы
🤓1
Основы работы с массивами и списками: что нужно знать каждому разработчику
Универсальная статья для всех разработчиков, независимо от языка и стека. Здесь собраны базовые концепции массивов и списков в Python, Java, C++. Особенности работы со структурами данных, их практическое применение. В общем всё, что нужно знать, чтобы начать эффективно использовать эти структуры данных.
#основы
Универсальная статья для всех разработчиков, независимо от языка и стека. Здесь собраны базовые концепции массивов и списков в Python, Java, C++. Особенности работы со структурами данных, их практическое применение. В общем всё, что нужно знать, чтобы начать эффективно использовать эти структуры данных.
#основы
✍1
«О» большое — простое объяснение с картинками
Наверняка при решение задач по программированию или во время чтения статей на эту тему вы натыкались на такое обозначение. Например, время работы этого алгоритма составляет
Что же это за
#основы
Наверняка при решение задач по программированию или во время чтения статей на эту тему вы натыкались на такое обозначение. Например, время работы этого алгоритма составляет
O(n2).Что же это за
О такое и как понять, от чего зависит содержимое скобок. Я нашёл для вас статью, которая в картинках объясняет все эти моменты, а также отвечает и на другие вопросы.#основы
✍5❤2👎1