Модуль 10.3 (Методы словарей) курса «Поколение Python: курс для продвинутых» курс расскажет о:
- Добавление и изменение элементов в словаре
- Удаление элементов из словаря
- Методы
get(), update() - Методы
pop(), popitem() - Методы
clear(), copy() - Метод
setdefault()
Публикуем решения на урок 10.3 Методы словарей.
Соотнесите методы словарей с их действием.

Для удаления элемента из словаря по его ключу можно использовать
оператор del
метод pop() Какой метод возвращает последний добавленный в словарь элемент (удаляя его из словаря) в виде кортежа
(ключ, значение)?
popitem() Какой метод возвращает значение, связанное с заданным ключом, и удаляет из словаря пару ключ / значение?
pop() Какой метод возвращает значение, связанное с заданным ключом? Если ключ не найден, то он возвращает значение по умолчанию.
get() Что покажет приведенный ниже фрагмент кода?
dct = {‘понедельник’: 1, ‘вторник’: 2, ‘среда’: 3}
print(dct.get(‘понедельник’, ‘Не найдено’))
1 Что покажет приведенный ниже фрагмент кода?
dct = {‘понедельник’: 1, ‘вторник’: 2, ‘среда’: 3}
print(dct.get(‘пятница’, ‘Не найдено’))
Не найдено Выберите все способы, с помощью которых можно очистить словарь, удалить его содержимое:
student = {‘name’: ‘Rosaly’,
‘class’: 10,
‘marks’: 75}
student.clear() Дополните приведенный код, чтобы в переменной
resultхранился словарь, в котором ключи – числа от 1 до 15 (включительно), а значения представляют собой квадраты ключей.
result = {i: i * i for i in range(1, 16)}
Дополните приведенный код так, чтобы он объединил содержимое двух словарей
Примечание. Выводить содержимое словаряdict1иdict2по ключам, складывая значения по одному и тому же ключу, в случае, если ключ присутствует в обоих словарях. Результирующий словарь необходимо присвоить переменнойresultresultне нужно.
dict1 = {'a': 100, 'z': 333, 'b': 200, 'c': 300, 'd': 45, 'e': 98, 't': 76, 'q': 34, 'f': 90, 'm': 230}
dict2 = {'a': 300, 'b': 200, 'd': 400, 't': 777, 'c': 12, 'p': 123, 'w': 111, 'z': 666}
for key, value in dict2.items():
dict1[key] = dict1.setdefault(key, 0) + value
result = dict1.copy() Дополните приведенный код так, чтобы в переменной
Примечание. Выводить содержимое словаряresultхранился словарь, в котором для каждого символа строкиtextбудет подсчитано количество его вхождений.resultне нужно.
text = 'footballcyberpunkextraterritorialityconversationalistblockophthalmoscopicinterdependencemamauserfff'
result = {letter: text.count(letter) for letter in set(text)} Дополните приведенный код, чтобы он вывел наиболее часто встречающееся слово строки
s. Если таких слов несколько, должно быть выведено то, что меньше в лексикографическом порядке.
s = 'orange strawberry barley gooseberry apple apricot barley currant orange melon pomegranate banana banana orange barley apricot plum grapefruit banana quince strawberry barley grapefruit banana grapes melon strawberry apricot currant currant gooseberry raspberry apricot currant orange lime quince grapefruit barley banana melon pomegranate barley banana orange barley apricot plum banana quince lime grapefruit strawberry gooseberry apple barley apricot currant orange melon pomegranate banana banana orange apricot barley plum banana grapefruit banana quince currant orange melon pomegranate barley plum banana quince barley lime grapefruit pomegranate barley'
res = {}
for w in s.split():
res[w] = res.get(w, 0) + 1
print(min(res, key=lambda x: (-res[x], x))) Вам доступен список
pets, содержащий информацию о собаках и их владельцах. Каждый элемент списка – это кортеж вида(кличка собаки, имя владельца, фамилия владельца, возраст владельца).Дополните приведенный код так, чтобы в переменной
Примечание 1. Не забывайте: кортежи являются неизменяемыми, поэтому могут быть ключами словаря.resultхранился словарь, в котором для каждого владельца будут перечислены его собаки. Ключом словаря должен быть кортеж(имя, фамилия, возраст владельца), а значением – список кличек собак (сохранив исходный порядок следования).
Примечание 2. Обратите внимание, что у некоторых владельцев по несколько собак.
Примечание 3. Выводить содержимое словаряresultне нужно.
pets = [('Hatiko', 'Parker', 'Wilson', 50),
('Rusty', 'Josh', 'King', 25),
('Fido', 'John', 'Smith', 28),
('Butch', 'Jake', 'Smirnoff', 18),
('Odi', 'Emma', 'Wright', 18),
('Balto', 'Josh', 'King', 25),
('Barry', 'Josh', 'King', 25),
('Snape', 'Hannah', 'Taylor', 40),
('Horry', 'Martha', 'Robinson', 73),
('Giro', 'Alex', 'Martinez', 65),
('Zooma', 'Simon', 'Nevel', 32),
('Lassie', 'Josh', 'King', 25),
('Chase', 'Martha', 'Robinson', 73),
('Ace', 'Martha', 'Williams', 38),
('Rocky', 'Simon', 'Nevel', 32)]
result = {}
for p, *name in pets:
result.setdefault(tuple(name), []).append(p) На вход программе подается строка текста. Напишите программу, которая выводит слово, которое встречается реже всего, без учета регистра. Если таких слов несколько, выведите то, которое меньше в лексикографическом порядке.
Примечание 1. Программа не должна быть чувствительной к регистру, словаappleиAppleдолжна воспринимать как одинаковые.
Примечание 2. Слово — последовательность букв. Кроме слов в тексте могут присутствовать пробелы и знаки препинания.,!?:;-, которые нужно игнорировать. Других символов в тексте нет.
li = [word.strip(".,!?:;-").lower() for word in input().split()]
di = {word: li.count(word) for word in li}
m = min(di.values())
for k, v in sorted(di.items(), key=lambda t: t[0]):
if v == m:
print(k)
break На вход программе подается строка, содержащая строки-идентификаторы. Напишите программу, которая исправляет их так, чтобы в результирующей строке не было дубликатов. Для этого необходимо прибавлять к повторяющимся идентификаторам постфикс
_n, гдеn– количество раз, сколько такой идентификатор уже встречался.
d, l = {}, []
for c in input().split():
if c not in l:
l.append(c)
else:
d[c] = d.get(c, 0) + 1
l.append(c + '_' + str(d[c]))
print(*l) Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы