Простыми словами: defaultdict в Python
Когда вы работаете с обычными словарями, часто приходится проверять, существует ли ключ, прежде чем добавлять или изменять значение.
Рассмотрим простой пример, в котором мы создаем словарь с ключами и списками в качестве значений.
Как это работает?
1. Мы создаем
2. Когда мы добавляем
Вы также можете использовать любую возвращаемую функцию для создания значений по умолчанию. Например, использовать
У
1. Устраняет необходимость проверки наличия ключа перед манипуляцией над ним.
2. Предотвращает ошибки, связанные с отсутствующими ключами.
3. Позволяет легко определять различные значения по умолчанию для различных типов данных.
Напишите в комментариях, какую тему вам хотелось бы разобрать ещё?
#простымисловами
defaultdict
— это подкласс стандартного словаря Python, который предоставляет значение по умолчанию для несуществующих ключей. Это помогает избежать частых ошибок с отсутствующими ключами, которые могут возникнуть при попытке доступа к значению по несуществующему ключу.Когда вы работаете с обычными словарями, часто приходится проверять, существует ли ключ, прежде чем добавлять или изменять значение.
defaultdict
делает это автоматически. Он создает запись с новым ключом и значением по умолчанию, если вы обращаетесь к несуществующему ключу.Рассмотрим простой пример, в котором мы создаем словарь с ключами и списками в качестве значений.
from collections import defaultdict
# Обычный словарь для сравнения
regular_dict = {}
# defaultdict с list в качестве значения по умолчанию
default_dict = defaultdict(list)
# Работа с обычным словарем
key = 'fruits'
if key not in regular_dict:
regular_dict[key] = []
regular_dict[key].append('apple')
# Работа с defaultdict
default_dict[key].append('banana')
print("Обычный словарь:", regular_dict)
# Результат: Обычный словарь: {'fruits': ['apple']}
print("defaultdict:", default_dict)
# Результат: defaultdict(<class 'list'>, {'fruits': ['banana']})
Как это работает?
1. Мы создаем
defaultdict
, указывая, что значением по умолчанию будет список (list
). Это значит, что если ключ отсутствует, то для него автоматически создается пустой список.2. Когда мы добавляем
banana
в default_dict
под ключом fruits
, defaultdict
автоматически создает новый список для этого ключа, если он ещё не существует, и добавляет в него элемент.Вы также можете использовать любую возвращаемую функцию для создания значений по умолчанию. Например, использовать
int()
для создания словаря, где 0 будет значением по умолчанию:# defaultdict с int в качестве значения по умолчанию
int_default_dict = defaultdict(int)
int_default_dict['count'] += 1 # Прибавляем единицу к несуществующему ключу
print(int_default_dict) # Результат: defaultdict(<class 'int'>, {'count': 1})
У
defaultdict
есть ряд преимуществ, которые стоит учитывать:1. Устраняет необходимость проверки наличия ключа перед манипуляцией над ним.
2. Предотвращает ошибки, связанные с отсутствующими ключами.
3. Позволяет легко определять различные значения по умолчанию для различных типов данных.
Напишите в комментариях, какую тему вам хотелось бы разобрать ещё?
#простымисловами
Какой будет результат выполнения кода выше с использованием collections.defaultdict?
Anonymous Quiz
19%
Ошибка KeyError
58%
"default two"
15%
" two"
8%
"default"
Шпаргалка по команде Pytest
Материала немного, но он будет полезен как новичкам, так и опытным питонистам. Тут собраны основные опции для команды и расписано их назначение.
#шпаргалка #pytest
Материала немного, но он будет полезен как новичкам, так и опытным питонистам. Тут собраны основные опции для команды и расписано их назначение.
#шпаргалка #pytest
Forwarded from Нейроканал
This media is not supported in your browser
VIEW IN TELEGRAM
supervision | Компьютерное зрение проще
Годнейший проект по демократизации Computer Vision под названием Roboflow выпустил свою библиотеку на Python. Теперь раскачивать свои «зрячие» модели можно не только в веб-интерфейсе, но и с помощью API. Прямиком из топов GitHub.
Админ играется с Roboflow в своём пет-проекте. В 2024 году, когда у крупных компаний хватает средств превратить буквально весь интернет в свой датасет, невольно задаёшься вопросом: а сколько данных потребуется твоей модели в условиях даже предобученной «подкапотной» YOLOv8?
Если у вас есть опыт в CV-проектах, напишите, какой объем тренданных потребовался модели для точности выше 80%.
Цена: бесплатно
Репозиторий
@prog_tools
Годнейший проект по демократизации Computer Vision под названием Roboflow выпустил свою библиотеку на Python. Теперь раскачивать свои «зрячие» модели можно не только в веб-интерфейсе, но и с помощью API. Прямиком из топов GitHub.
Админ играется с Roboflow в своём пет-проекте. В 2024 году, когда у крупных компаний хватает средств превратить буквально весь интернет в свой датасет, невольно задаёшься вопросом: а сколько данных потребуется твоей модели в условиях даже предобученной «подкапотной» YOLOv8?
Если у вас есть опыт в CV-проектах, напишите, какой объем тренданных потребовался модели для точности выше 80%.
Цена: бесплатно
Репозиторий
@prog_tools
This media is not supported in your browser
VIEW IN TELEGRAM
Как легко создать дипфейк в реальном времени с Python
Для этого нам понадобится утилита Deep-Live-Cam, Python и всего одна фотография для наложения лица.
Работает даже на слабом ПК, установка простая, а инструкция уже лежит в репозитории по ссылке.
#инструменты #ml #deepfake
Для этого нам понадобится утилита Deep-Live-Cam, Python и всего одна фотография для наложения лица.
Работает даже на слабом ПК, установка простая, а инструкция уже лежит в репозитории по ссылке.
#инструменты #ml #deepfake
Простыми словами: Паттерн «Фасад»
Фасад — это отличный выбор для уменьшения сложности взаимодействия с внешними системами и улучшения удобства использования часто противоречивых или сложных API. Тем не менее важно не злоупотреблять этим паттерном, чтобы избежать чрезмерной изоляции компонентов или чрезмерной связности вашей системы.
Как вам новое оформление рубрики?
#простымисловами #паттерны
Фасад — это отличный выбор для уменьшения сложности взаимодействия с внешними системами и улучшения удобства использования часто противоречивых или сложных API. Тем не менее важно не злоупотреблять этим паттерном, чтобы избежать чрезмерной изоляции компонентов или чрезмерной связности вашей системы.
Как вам новое оформление рубрики?
#простымисловами #паттерны
Как сделать генератор ASCII-графики на Python
Энтузиасты делают ASCII-ремейки «Звездных войн» и ролевые ASCII-игры. Вы тоже можете сделать что-то подобное, когда напишите своё GUI-приложение для конвертации изображений в олдскульную ASCII-графику с помощью Python и библиотеки Pillow.
Как это сделать, рассказали в статье.
#pillow #ascii
Энтузиасты делают ASCII-ремейки «Звездных войн» и ролевые ASCII-игры. Вы тоже можете сделать что-то подобное, когда напишите своё GUI-приложение для конвертации изображений в олдскульную ASCII-графику с помощью Python и библиотеки Pillow.
Как это сделать, рассказали в статье.
#pillow #ascii
Какой аспект паттерна «Фасад» демонстрируется в коде?
Anonymous Quiz
11%
Улучшает производительность системы
69%
Упрощает интерфейс для запуска компьютера
11%
Делегирует управление пользователю
9%
Улучшает безопасность системы
This media is not supported in your browser
VIEW IN TELEGRAM
Trafilatura: CLI-аналог BeautifulSoup
Интересный opensource-инструмент Trafilatura, предлагающий скрейпинг содержимого веб-страниц. Утилита пытается найти баланс между ограничением шума («левых» элементов на странице) и включением всех смыслонесущих частей.
❤️ — то, что надо
🤔 — знаю вариант круче, напишу в комментариях
#инструменты #cli
Интересный opensource-инструмент Trafilatura, предлагающий скрейпинг содержимого веб-страниц. Утилита пытается найти баланс между ограничением шума («левых» элементов на странице) и включением всех смыслонесущих частей.
❤️ — то, что надо
🤔 — знаю вариант круче, напишу в комментариях
#инструменты #cli
Media is too big
VIEW IN TELEGRAM
Как работают многопроцессность, многопоточность, асинхронность и не только в Python
Алексей Голобурдин понятным языком рассказал о том, как работают процессоры, о многоядерных CPU и Hyper-Threading, о процессах, потоках и многопоточности, а также об асинхронности или кооперативной многозадачности.
Видео даст вам необходимые знания для того, чтобы вы понимали не только что делает тот или иной метод, но и как это всё работает на более глубоком уровне.
#видео
Алексей Голобурдин понятным языком рассказал о том, как работают процессоры, о многоядерных CPU и Hyper-Threading, о процессах, потоках и многопоточности, а также об асинхронности или кооперативной многозадачности.
Видео даст вам необходимые знания для того, чтобы вы понимали не только что делает тот или иной метод, но и как это всё работает на более глубоком уровне.
#видео
Большое учебное пособие по виртуальному окружению в Python
Виртуальное окружение — это инструмент, позволяющий изолировать зависимости проекта от глобального окружения и предотвращать возможные конфликты между библиотеками.
В этом руководстве вы узнаете, как работать с
#venv #статья
Виртуальное окружение — это инструмент, позволяющий изолировать зависимости проекта от глобального окружения и предотвращать возможные конфликты между библиотеками.
В этом руководстве вы узнаете, как работать с
venv
Python для создания отдельных виртуальных сред для ваших проектов на Python и управлять ими.#venv #статья
Forwarded from Сохранёнки программиста
Курс по автоматизации тестирования с помощью Selenium & Python
Автоматизация тестов — это отличный способ упростить проверку работы сайтов и приложений, сэкономив время на ручных тестах. Она помогает быстрее находить баги и быть уверенными, что всё работает как надо перед релизом.
Сохраняйте классный курс для начинающих тестировщиков, где учат писать автотесты на Python с помощью Selenium. На курсе разберут, как писать понятные и стабильные тесты, работать с популярными фреймворками и правильно строить тест-сценарии:
Ссылка на курс
#курс #qa #python #начинающим #ru
Автоматизация тестов — это отличный способ упростить проверку работы сайтов и приложений, сэкономив время на ручных тестах. Она помогает быстрее находить баги и быть уверенными, что всё работает как надо перед релизом.
Сохраняйте классный курс для начинающих тестировщиков, где учат писать автотесты на Python с помощью Selenium. На курсе разберут, как писать понятные и стабильные тесты, работать с популярными фреймворками и правильно строить тест-сценарии:
Ссылка на курс
#курс #qa #python #начинающим #ru
Stepik: online education
Автоматизация тестирования с помощью Selenium и Python
Это базовый курс для начинающих тестировщиков, который научит вас писать автоматизированные UI-тесты на языке программирования Python с помощью библиотеки Selenium. А еще мы рассмотрим популярные фреймворки и хорошие практики написания автотестов.
Упрощаем создание приложений на основе языковых моделей
В этом нам поможет фреймворк LangChain. Он упрощает разработку, поддержку и развёртывание приложений благодаря лёгкой интеграции нужных вам компонентов.
С помощью него можно гораздо проще создавать чат-ботов, ассистентов и другие инструменты, использующие LLM.
#llm #ai
В этом нам поможет фреймворк LangChain. Он упрощает разработку, поддержку и развёртывание приложений благодаря лёгкой интеграции нужных вам компонентов.
С помощью него можно гораздо проще создавать чат-ботов, ассистентов и другие инструменты, использующие LLM.
#llm #ai