Решение модуля 10.3 Поколение Python: для продвинутых

Модуль 10.3 (Методы словарей) курса «Поколение Python: курс для продвинутых» курс расскажет о:

  • Добавление и изменение элементов в словаре
  • Удаление элементов из словаря
  • Методы get(), update()
  • Методы pop(), popitem()
  • Методы clear(), copy()
  • Метод setdefault()

Публикуем решения на урок 10.3 Методы словарей.

Соотнесите методы словарей с их действием.

Решение модуля 10.3 Поколение Python: для продвинутых

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


оператор 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, содержащий информацию о собаках и их владельцах.  Каждый элемент списка – это кортеж вида (кличка собаки, имя владельца, фамилия владельца, возраст владельца).

Дополните приведенный код так, чтобы в переменной result хранился словарь, в котором для каждого владельца будут перечислены его собаки. Ключом словаря должен быть кортеж (имя, фамилия, возраст владельца), а значением – список кличек собак (сохранив исходный порядок следования).

Примечание 1. Не забывайте: кортежи являются неизменяемыми, поэтому могут быть ключами словаря.
Примечание 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)

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

Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x