Модуль 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
по ключам, складывая значения по одному и тому же ключу, в случае, если ключ присутствует в обоих словарях. Результирующий словарь необходимо присвоить переменнойresult
result
не нужно.
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)
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы