Словари в Python и методы работы с ними

В одной из прошлых статей я разбирал списки в Python и методы работы с ними. Сегодня мы узнаем, как работать со словарями в Python и изучим их методы.

Что такое словарь

Словари (dict) хранят в себе ключи и их объекты, где ключ – это имя объекта в словаре. Их могут называть ассоциативными массивами или хеш-таблицами.

Как мы знаем, в списках доступ к элементам осуществляется по индексу, который является неотрицательным числом. Индекс в списках создается автоматически при добавлении новых элементов, а индексами в словарях служат ключи, и их мы должны объявлять сами.

Для каких целей нам будут полезны словари? 

  • Подсчет каких-то предметов, где ключи – названия предметов, а объект – их количество.

  • Для экономии памяти, если есть массив, который использует не все индексы по порядку.

  • Установка соответствий между объектами, сортировка.

  • Хранение данных разных объектов (например: ключ – ID пользователя ВКонтакте, а объект – массив с данными).

Ключом может быть произвольный неизменяемый тип данных: различные числа, строки, кортежи. Ключом в словаре не может быть множество, но может быть  неизменяемый элемент типа frozenset. Значением элемента словаря может быть любой изменяемый или неизменяемый тип данных.

Создание словаря в Python

Пустой словарь в Python, как и в JavaScript, можно создать двумя способами: через функцию dict() или с помощью фигурных скобок. Рассмотрим на примере:

 #Создание через функцию: dict1 = dict() #Создание через фигурные скобки: dict2 = {}  print(type(dict1)) #Выведет <class 'dict'> print(type(dict2)) #Выведет <class 'dict'> print(dict1) #Выведет {} print(dict2) #Выведет {} 

Теперь создадим уже заполненный словарь через функцию и фигурные скобки:

 #Создание через функцию: dict1 = dict(car='машина', apple='яблоко') #Создание через фигурные скобки: dict2 = { 'car': 'машина', 'apple': 'яблоко' }  print(dict1) #Выведет {'car': 'машина', 'apple': 'яблоко'} print(dict2) #Выведет {'car': 'машина', 'apple': 'яблоко'} 

Изменение словаря

Добавим в наш словарь объект. Для этого нам нужно придумать значение ключу. Рассмотрим на примере:

 dict = { 'car': ‘машина’, 'apple': 'яблоко' } dict['orange'] = 'апельсин' #В квадратных скобках указываем имя ключа, а значение после знака равно print(dict) #Выведет {'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин'} 

Для удаления ключа и его объекта в словаре используют метод del, указывая имя ключа в квадратных скобках:

 dict = { 'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин' } del dict['orange'] print(dict) #Выведет {'car': 'машина', 'apple': 'яблоко'} 

Перебор элементов словарей в Python

Для вывода всех ключей и значений по порядку используем цикл с оператором in:

 dict = { 'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин' } for key in dict:     print(key, dict[key]) #Выведет: #car машина #apple яблоко #orange апельсин 

Для вывода значения по ключу используем имя словаря и квадратные скобки с именем нужного ключа:

 dict = { 'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин' } print(dict['car']) #Выведет 'машина' 

Методы словарей в Python

copy() – создание копии словаря. Рассмотрим на примере:

 dict1 = { 'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин' } dict2 = dict1.copy() print(dict2) #Выведет {'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин'} 

get() – получение значения по ключу. Рассмотрим на примере:

 dict = { 'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин' } print(dict.get('car')) #Выведет 'машина' 

clear() – очистка словаря. Рассмотрим на примере:

 dict = { 'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин' } dict.clear() print(dict) #Выведет {} 

keys() – получение всех ключей словаря. Рассмотрим на примере:

 dict = { 'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин' } print(dict.keys()) #Выведет  dict_keys(['car', 'apple', 'orange']) 

values() – получение всех значений элементов словаря. Пример:

 dict = { 'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин' } print(dict.values()) #Выведет dict_values(['машина', 'яблоко', 'апельсин'])  

items() – получение всех элементов словаря, включая ключи. Рассмотрим на примере:

 dict = { 'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин' } print(dict.items()) #Выведет dict_items([('car', 'машина'), ('apple', 'яблоко'), ('orange', 'апельсин')]) 

pop() – удаляет и возвращает значение ключа. Рассмотрим на примере:

 dict = { 'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин' } print(dict.pop('car')) #Выведет ‘машина’ print(dict) #Выведет {'apple': 'яблоко', 'orange': 'апельсин'} 

popitem() – удаляет и возвращает имя и значение ключа. Пример:

 dict = { 'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин' } print(dict.popitem()) #Выведет ('orange', 'апельсин') print(dict) #Выведет {'car': 'машина', 'apple': 'яблоко'} 

setdefault() – получение значения по ключу, если такой ключ присутствует в словаре. Когда такого ключа нет, он создается со значением None (если оно не указано в свойствах). Рассмотрим на примере:

 dict = { 'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин' } print(dict.setdefault(‘car’) #Выведет 'машина' print(dict.setdefault('home', 'дом') #Выведет 'дом' print(dict) #Выведет {'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин', 'home': 'дом'} 

update({}) – обновить значения по ключам, добавление новых ключей:

 dict = { 'car': 'машина', 'apple': 'яблоко', 'orange': 'апельсин' } dict.update({'car': 'автомобиль', 'home': 'дом'}) print(dict) #Выведет {'car': 'автомобиль', 'apple': 'яблоко', 'orange': 'апельсин', 'home': 'дом'} 

Итог

Мы изучили словари в Python и методы работы с ними. Надеюсь, статья была полезной для вас. Удачи!

Межтекстовые Отзывы
Посмотреть все комментарии
guest

Как установить Git на Debian 10

Разработка #Серверы #OpenSource #Debian Система контроля версий (например, Git) позволяет регистрировать изменения в файлах, с которыми работают разработчики,...

Платформы для интернет-магазина: какую выбрать?

Разработка #Обзор #Интернет-магазин #Bitrix #OpenCart Введение По статистике за 2016 год 30,5 млн жителей России совершают покупки в...

Сколько стоит разработка сайта

Разработка #Лендинги #Финансы #Разбор Если вы планируете разработку сайта, то, скорее всего, у вас много вопросов, а один...

10 лучших конструкторов сайтов

Разработка #Веб-дизайн #Сервисы #Подборка #HTML/CSS #Конструктор Конструктор сайтов – это специальный сервис, позволяющий создать сайт без помощи программистов и...

Обзор Vue.js

Разработка #Фреймворки #Обзор #JavaScript Vue.js или просто Vue – это прогрессивный JavaScript-фреймворк, который используется для создания пользовательских интерфейсов....

5 главных способов привлечения клиентов из карт и отзывиков

Бизнес #Продажи #Предпринимательство #SEO Реклама. ООО «ТаймВэб». erid: LjN8KQs4Z Мы в MyReviews делаем инструменты для мониторинга и улучшения рейтинга...

Как создать рекламный сайт

Разработка #Монетизация #Реклама #Конструктор Рекламный сайт – это ресурс, нацеленный на продажу товаров или услуг. Вся информация, находящаяся...

11 лучших приложений для изучения программирования

Разработка #C/C#/C++ #Программы #Сервисы #Подборка #JavaScript Рассказываем о лучших приложениях для смартфонов, которые помогут обучиться программированию и веб-разработке. ...

Руководство по разработке приложений: как сделать приложение для iOS и Android самостоятельно

Разработка #Конверсия #Подборка #Разбор #UX/UI #Конструктор Разработка мобильного приложения от А до Я – это довольно долгая и...

Микроразметка Open Graph: базовые принципы и настройка

Разработка #Социальные сети #Контент #HTML/CSS #SEO Микроразметка помогает роботам ориентироваться на страницах сайта и забирать для формирования поисковой...

Как правильно подключить CSS к HTML

Разработка #Настройка #HTML/CSS Рассмотрим, как применить CSS к сайтам и приложениям.  CSS – это таблица стилей. От нее зависит...

Pagekit – open source CMS от Yootheme

Разработка #Шаблоны #JavaScript #HTML/CSS #PHP #Оптимизация Тенденция, однако. Разработчики клубных шаблонов начинают создавать собственные CMS. Примерно год назад...

Что такое скрам-доска

Разработка #Программы #Обзор #Менеджмент #Оптимизация Поговорим об одном из наиболее часто используемых инструментов для повышения эффективности команды.  Что такое...

Руководство по работе с Kubernetes для начинающих

Разработка #Серверы #Настройка #Docker #Ubuntu #CentOS Kubernetes – это портативная расширяемая платформа для управления контейнерами на серверах. Она...

Уровни языков программирования: краткий обзор

Разработка #Обзор #Технологии #Железо #Программы Рассказываю о том, почему языки программирования делятся на уровни, что эти уровни обозначают...

7 самых популярных фреймворков JavaScript

Разработка #Фреймворки #Обзор #JavaScript Статья посвящена самым популярным фреймворкам, библиотекам и инструментам JavaScript. Каждый из них может значительно облегчить...

Какую CMS выбрать для простого сайта?

Разработка #WordPress #Bitrix #Drupal #Joomla! #OpenCart Для чего нужны CMS Система управления контентом, система управления содержимым, система управления...

Как научиться читать код сайта и зачем это нужно, если вы не программист

Разработка #Браузеры #Веб-дизайн #HTML/CSS Часто возникают ситуации, когда необходимо проанализировать содержимое веб-страницы: посмотреть description, узнать размер какого-то элемента...

Лучшие сайты для изучения программирования

Разработка #Сервисы #Подборка #IDE #Карьера Рассказываем о лучших сайтах для изучения программирования.  Для удобства все ресурсы поделены на...

Сравнение VPS и облачного хостинга для Bitrix

В современном мире веб-технологий выбор между VPS (виртуальным частным сервером) и облачным хостингом для системы управления контентом, такой...