Уроки Питона №6/9. Словари (dict) в Питоне

Урок 9. Словари (dict)

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

Что такое словарь (dict) в Python?

Словарь (dict) представляет собой структуру данных (которая ещё называется ассоциативный массив), предназначенную для хранения произвольных объектов с доступом по ключу. Данные в словаре хранятся в формате ключ – значение. Если вспомнить такую структуру как список, то доступ к его элементам осуществляется по индексу, который представляет собой целое неотрицательное число, причем мы сами, непосредственно, не участвуем в его создании (индекса). В словаре аналогом индекса является ключ, при этом ответственность за его формирование ложится на программиста.

Создание, изменение, удаление словарей и работа с его элементами

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

>>> d1 = dict()

>>> print(type(d1))

<class 'dict'>

>>> d2 = {}

>>> print(type(d2))

<class 'dict'>

Если необходимо создать словарь с заранее подготовленным набором данных, то можно использовать один из перечисленных выше подходов, но с перечислением групп ключ-значение.

>>> d1 = dict(Ivan="manager", Mark="worker")

>>> print(d1)

{'Mark': 'worker', 'Ivan': 'manager'}

>>> d2 = {"A1":"123", "A2":"456"}

>>> print(d2)

{'A2': '456', 'A1': '123'}

Добавление и удаление элемента
Чтобы добавить элемент в словарь нужно указать новый ключ и значение.

>>> d1 = {"Russia":"Moscow", "USA":"Washington"}

>>> d1["China"]="Beijing"

>>> print(d1)

{'Russia': 'Moscow', 'China': 'Beijing', 'USA': 'Washington'}

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

>>> d2 = {"A1":"123", "A2":"456"}

>>> del d2["A1"]

>>> print(d2)

{'A2': '456'}

Работа со словарем
Проверка наличия ключа в словаре производится с помощью оператора in.

>>> d2 = {"A1":"123", "A2":"456"}

>>> "A1" in d2

True

>>> "A3" in d2

False

Доступ к элементу словаря, осуществляется как же как доступ к элементу списка, только в качестве индекса указывается ключ.

>>> d1 = {"Russia":"Moscow", "USA":"Washington"}

>>> d1["Russia"]

'Moscow'

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

У словарей доступен следующий набор методов.

clear()
Удаляет все элементы словаря.

>>> d2 = {"A1":"123", "A2":"456"}

>>> print(d2)

{'A2': '456', 'A1': '123'}

>>> d2.clear()

>>> print(d2)

{}

copy()
Создается новая копия словаря.

>>> d2 = {"A1":"123", "A2":"456"}

>>> d3 = d2.copy()

>>> print(d3)

{'A1': '123', 'A2': '456'}

>>> d3["A1"]="789"

>>> print(d2)

{'A2': '456', 'A1': '123'}

>>> print(d3)

{'A1': '789', 'A2': '456'}

fromkeys(seq[, value])
Создает новый словарь с ключами из seq и значениями из value. По умолчанию value присваивается значение None.

get(key)
Возвращает значение из словаря по ключу key.

>>> d = {"A1":"123", "A2":"456"}

>>> d.get("A1")

'123'

items()
Возвращает элементы словаря (ключ, значение) в отформатированном виде.

>>> d = {"A1":"123", "A2":"456"}

>>> d.items()

dict_items([('A2', '456'), ('A1', '123')])

keys()
Возвращает ключи словаря.

>>> d = {"A1":"123", "A2":"456"}

>>> d.keys()

dict_keys(['A2', 'A1'])

pop(key[, default])
Если ключ key есть в словаре, то данный элемент удаляется из словаря и возвращается значение по этому ключу, иначе будет возвращено значение default. Если default не указан и запрашиваемый ключ отсутствует в словаре, то будет вызвано исключение KeyError.

>>> d = {"A1":"123", "A2":"456"}

>>> d.pop("A1")

'123'

>>> print(d)

{'A2': '456'}

popitem()
Удаляет и возвращает пару (ключ, значение) из словаря. Если словарь пуст, то будет вызвано исключение KeyError.

>>> d = {"A1":"123", "A2":"456"}

>>> d.popitem()

('A2', '456')

>>> print(d)

{'A1': '123'}

setdefault(key[, default])
Если ключ key есть в словаре, то возвращается значение по ключу. Если такого ключа нет, то в словарь вставляется элемент с ключом key и значением default, если default не определен, то по умолчанию присваивается None.

>>> d = {"A1":"123", "A2":"456"}

>>> d.setdefault("A3", "777")

'777'

>>> print(d)

{'A2': '456', 'A3': '777', 'A1': '123'}

>>> d.setdefault("A1")

'123'

>>> print(d)

{'A2': '456', 'A3': '777', 'A1': '123'}

update([other])
Обновить словарь парами (key/value) из other, если ключи уже существуют, то обновить их значения.

>>> d = {"A1":"123", "A2":"456"}

>>> d.update({"A1":"333", "A3":"789"})

>>> print(d)

{'A2': '456', 'A3': '789', 'A1': '333'}

values()
Возвращает значения элементов словаря.

>>> d = {"A1":"123", "A2":"456"}

>>> d.values()

dict_values(['456', '123'])

Профессиональный репетитор по математике, информатике и физике:

 

Александр Анатольевич Борцов 


КАК ВЫБРАТЬ:
связаться с Александром Анатольевичем
с помощью WhatsApp (лучше) или Telegram
+7-926-859-12-55 

C самого основания своего продвижения по службе, я мечтал собрать во едино  мои основные интересы научной деятельности в области Квантовой физики и лазеров: Математику, Информатику, Физику и Обучение, когда еще обучался в аспирантуре.

Успешный математик и физик для школьников и студентов, PhD. Образование: Физический факультет МГУ им.М.В.Ломоносова с отличием, Специальность -Физика. Преподавал в  МЭИ, педагогический стаж более 19 лет. Является автором  монографии на английском языке "Laser Opto-Electronic Oscillator", 2020, изд. Springer. Автор более 60 ти научных публикаций в зарубежных и отечественных научных журналах по темам Квантовая Электроника, Квантовая радиофизика, Лазеры, Наноэлектроника, Лазерный оптоэлектронный генератор и др.. Хорошо   подготовит экзамену по математике и физике в 10 класс с помощью современных технологий по расширению памяти. 

 Обучал основам Python, MathLab, Data Science и Machine Learning. 

Более 320 учащихся  поступили «на бюджет» в университеты и  ВУЗы Москвы: МИРЭА, МГТУ, МГУ и МАИ и многие другиеОпыт репетитора по математическому анализу по математике для студентов более 20 лет.Занятия проводятся дистанционно по Skype и Zoom|и очно в Москве м. Китай-город]. Есть большой опыт подготовки к экзаменам по физике и математике по англоязычным программам университетов (SAT,GMAT). По методикам и учебникам университетов готовил к экзаменам по математике и физике  студентов из Канады, Германии, Испании и  Нидерланды. Говорю по английски, владею английским, преподаю на английском математику и физику..
Занятия ведутся Дистанционно по Skype и Zoom и и очно в Москве м. Китай-город

Запись на занятия

Ваше сообщение отправлено