На этом занятии мы продолжаем знакомиться со словарями в Python и рассмотрим основные их методы. Итак, для удаления
всех записей из словаря используется метод
Для создания
копии словаря используется метод copy:
d = {True: 1, False: "Ложь", "list": [1,2,3], 5: 5}
d2 = d.copy()
d2["list"] = [5,6,7]
print(d)
print(d2)
Следующий метод get позволяет
получать значение словаря по ключу:
Его отличие от
оператора
в том, что при
указании неверного ключа не возникает ошибки, а выдается по умолчанию значение None:
Это значение
можно изменить, указав его вторым аргументом:
Похожий метод
dict.setdefault(key[, default])
возвращает
значение, ассоциированное с ключом key и если его нет, то добавляет в
словарь со значением None, либо default – если оно
указано:
d.setdefault("list")
d.setdefault(3)
Добавит ключ 3
со значением None. Удалим его:
del d[3]
d.setdefault(3, "three")
тогда добавится
этот ключ со значением «three». То есть, этот метод способен создать
новую запись, но только в том случае, если указанный ключ изначально
отсутствовал в словаре.
Следующий метод
удаляет
указанный ключ и возвращает его значение. Если в нем указывается несуществующий
ключ, то возникает ошибка:
Но мы можем
легко исправить ситуацию, если в качестве второго аргумента указать значение,
возвращаемое при отсутствии ключа:
Здесь
возвратится False. Если же ключ присутствует,
то возвращается его значение.
Следующий метод
выполняет
удаление произвольной записи из словаря. Если словарь пуст, то возникает
ошибка:
Далее, метод
возвращает
коллекцию ключей. По умолчанию цикл for обходит именно эту коллекцию,
при указании словаря:
d = {True: 1, False: "Ложь", "list": [1,2,3], 5: 5}
for x in d:
print(x)
то есть, эта
запись эквивалента такой:
Если же вместо keys записать метод values:
то обход будет
происходить по значениям, то есть, метод values возвращает
коллекцию из значений словаря.
Последний
подобный метод items
возвращает
записи в виде кортежей: ключ, значение. О кортежах мы будем говорить позже,
здесь лишь отмечу, что к элементу кортежа можно обратиться по индексу и вывести
отдельно ключи и значения:
Или, используя
синтаксис множественного наследования:
можно записать
цикл for в таком виде:
for key, value in d.items():
print(key, value)
что гораздо
удобнее и нагляднее.
Задания для самоподготовки
1. Пользователь
вводит произвольные целые числа и нужно создать словарь, у которого ключами
будут только четные числа, а значениями – квадраты этих чисел.
2. Пусть имеется
вот такая строка:
"int= целое число, dict=словарь, list=список, str=строка, bool=булевый
тип"
Требуется из нее
создать словарь с ключами:
int, dict, list, str, bool
и
соответствующими значениями.
3. Пользователь
вводит с клавиатуры M раз данные в формате:
английское
слово: перевод1, перевод2, …, переводN
каждую введенную
строку необходимо преобразовать и поместить в словарь, у которого ключом будет
английское слово, а значением список:
[перевод1,
перевод2, …, переводN]