Основные методы словарей

На этом занятии мы продолжаем знакомиться со словарями в Python и рассмотрим основные их методы. Итак, для удаления всех записей из словаря используется метод

d.clear()

Для создания копии словаря используется метод copy:

d = {True: 1, False: "Ложь", "list": [1,2,3], 5: 5}
d2 = d.copy()
d2["list"] = [5,6,7]
print(d)
print(d2)

Следующий метод get позволяет получать значение словаря по ключу:

d.get("list")

Его отличие от оператора

d["list"]

в том, что при указании неверного ключа не возникает ошибки, а выдается по умолчанию значение None:

print(d.get(3))

Это значение можно изменить, указав его вторым аргументом:

print(d.get(3, False) )

Похожий метод

dict.setdefault(key[, default])

возвращает значение, ассоциированное с ключом key и если его нет, то добавляет в словарь со значением None, либо default – если оно указано:

d.setdefault("list")
d.setdefault(3)

Добавит ключ 3 со значением None. Удалим его:

del d[3]
d.setdefault(3, "three")

тогда добавится этот ключ со значением «three». То есть, этот метод способен создать новую запись, но только в том случае, если указанный ключ изначально отсутствовал в словаре.

Следующий метод

d.pop(3)

удаляет указанный ключ и возвращает его значение. Если в нем указывается несуществующий ключ, то возникает ошибка:

d.pop("abc")

Но мы можем легко исправить ситуацию, если в качестве второго аргумента указать значение, возвращаемое при отсутствии ключа:

d.pop("abc", False)

Здесь возвратится False. Если же ключ присутствует, то возвращается его значение.

Следующий метод

d.popitem()

выполняет удаление произвольной записи из словаря. Если словарь пуст, то возникает ошибка:

d2 = {}
d2.popitem()

Далее, метод

d.keys()

возвращает коллекцию ключей. По умолчанию цикл for обходит именно эту коллекцию, при указании словаря:

d = {True: 1, False: "Ложь", "list": [1,2,3], 5: 5}
for x in d:
    print(x)

то есть, эта запись эквивалента такой:

for x in d.keys():

Если же вместо keys записать метод values:

for x in d.values():

то обход будет происходить по значениям, то есть, метод values возвращает коллекцию из значений словаря.

Последний подобный метод items

for x in d.items():

возвращает записи в виде кортежей: ключ, значение. О кортежах мы будем говорить позже, здесь лишь отмечу, что к элементу кортежа можно обратиться по индексу и вывести отдельно ключи и значения:

print(x[0], x[1])

Или, используя синтаксис множественного наследования:

x,y = (1,2)

можно записать цикл 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]

Видео по теме