Как работает хэш-таблица?
Хэш-таблица в Python реализована в виде словаря (dict). Вот как это работает:
— Хэширование ключей: когда вы добавляете пару ключ-значение в словарь, Python сначала вычисляет хэш-код ключа с помощью встроенной функции hash(). Хэш-код — это целое число, представляющее «отпечаток» ключа.
— Разрешение коллизий: если два разных ключа имеют одинаковый хэш-код (коллизия), Python использует механизм разрешения коллизий для размещения значений в памяти. Одним из наиболее распространенных методов разрешения коллизий является метод цепочек, когда для каждого «ячейки» хэш-таблицы выделен список, в который добавляются все значения с одинаковыми хэш-кодами.
— Поиск значения: при поиске значения по ключу Python сначала вычисляет хэш-код ключа и затем использует его для определения соответствующей «ячейки» в хэш-таблице. Затем происходит поиск значения внутри этой «ячейки» (или цепочки).
Хэш-таблица в Python реализована в виде словаря (dict). Вот как это работает:
— Хэширование ключей: когда вы добавляете пару ключ-значение в словарь, Python сначала вычисляет хэш-код ключа с помощью встроенной функции hash(). Хэш-код — это целое число, представляющее «отпечаток» ключа.
— Разрешение коллизий: если два разных ключа имеют одинаковый хэш-код (коллизия), Python использует механизм разрешения коллизий для размещения значений в памяти. Одним из наиболее распространенных методов разрешения коллизий является метод цепочек, когда для каждого «ячейки» хэш-таблицы выделен список, в который добавляются все значения с одинаковыми хэш-кодами.
— Поиск значения: при поиске значения по ключу Python сначала вычисляет хэш-код ключа и затем использует его для определения соответствующей «ячейки» в хэш-таблице. Затем происходит поиск значения внутри этой «ячейки» (или цепочки).
Это одна из самых полных шпаргалок из всех, что мы видели. Оформлена в виде веб-страницы с удобными гиперссылками по разделам. Кроме того, её можно скачать в PDF-формате.
⚡️ В шпаргалке также стоят отметки, которые говорят о том, в какой версии Python появилась та или иная фишка.
📌 Ссылка на шпаргалку
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Здесь раскрываются темы Python, с которыми могут возникать сложности, а именно:
— ООП, магические методы, атрибуты и методы объекта
— построение разных графиков для Data Science
— декораторы и подобные возможности Python
— тонкости работы с I/O операциями
В целом, отличный материал для подготовки к собеседованию
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Здесь приводится много информации, которая будет полезна начинающим и продвинутым питонистам: от базовых структур данных, ООП и работы с файлами — до создания асинхронных приложений и работы с SQL
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Здесь объясняются структуры данных, ООП, различные принципы и паттерны типа SOLID, обработка ошибок, написание тестов и много всего другого (в т.ч. алгоритмы сортировки), что можно освежить перед собеседованием
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Держите отличный учебник/туториал по продвинутым темам Python.
Здесь освещается большое количество разных тем, вот некоторые:
— ООП: классы, магические методы, атрибуты
— декораторы
— загрузка и предобработка датасета
— кросс-валидация
— построение разных графиков
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Здесь собрана теория с подробным объяснением тем Computer Science, таких как алгоритмы, динамическое программирование, рекурсия
+ теория и практика по Python
Настоятельно рекомендуется к ознакомлению
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
В частности, здесь описывается использование Pandas для решения таких задач:
— прогнозирование временных рядов
— разведочный анализ данных EDA
— простой анализ датасета NYC
— анализ исторических данных
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Контекстные процессоры (context processors) в Django - это функции, которые добавляют глобальные переменные в контекст перед рендерингом шаблона. Эти переменные могут быть использованы в любом шаблоне в приложении, и не нужно передавать их каждый раз при рендеринге каждого шаблона вручную.
Контекстные процессоры в Django имеют доступ к объекту request, который содержит информацию о запросе, и могут использоваться для добавления переменных в контекст на основе этой информации.
Например, контекстный процессор может добавлять текущего пользователя в контекст, что позволит проверять доступности функционала приложения на страницах, доступных только зарегистрированным пользователям.
Вот пример функции-контекстного процессора, которая добавляет текущего пользователя в контекст:
def user_context(request):
return {'user': request.user}
Чтобы использовать этот контекстный процессор в вашем приложении Django, добавьте его в настройки проекта в списке CONTEXT_PROCESSORS.
Например:
# Файл
settings.py
# ...
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
# ...
'myapp.context_processors.user_context',
],
},
},
]
Теперь переменная user будет доступна в любом шаблоне вашего приложения.
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Списковое включение — самый эффективный способ итерации любого списка.
Это итерирование однострочного списка с включением в него цикла. Посмотрите приведенный выше пример кода, чтобы понять, как это работает.
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Полезная подборка бесплатных ресурсов для изучения Python, разных практических проектов и т.д.
Кое-что из этого неплохо бы освежить перед собеседованием, а некоторые другие ссылки пригодятся для создания релевантного портфолие
Отдельного внимания из всего этого заслуживает, конечно, гарвардский курс лекций по Python, вот отдельная ссылка
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM