Модуль 10.2 (Основы работы со словарями) курса «Поколение Python: курс для продвинутых» курс расскажет о:
- Встроенные функции
len()
,sum()
,min()
,max()
- Оператор принадлежности
in
- Перебор словарей
- Распаковка словаря
- Форматированный вывод словарей
- Сравнение словарей
- Методы
keys(), values()
иitems()
Публикуем решения на урок 10.2 Основы работы со словарями.
Что выведет следующий программный код?
stuff = {1:’ааа’, 2:’ббб’, 3:’ввв’, 4:’ггг’}
print(len(stuff))
4
Для проверки наличия ключа в словаре используется оператор:
in
Что выведет следующий программный код?
dict1 = {‘key1’:1, ‘key2’:2}
dict2 = {‘key2’:2, ‘key1’:1}print(dict1 == dict2)
True
Что покажет приведенный ниже фрагмент кода?
my_dict = {‘foo’: 100, ‘bar’: 200, ‘baz’: 300}
print(my_dict[‘bar’:’baz’])
ошибка во время выполнения
Дополните приведенный код так, чтобы он вывел сумму минимального и максимального ключа в словаре
my_dict
.
my_dict = {1.12: 'aa', 67.9: 45, 3.11: 'ccc', 7.9: 'dd', 9.2: 'ee', 7.1: 'ff', 0.12: 'qq', 1.91: 'aa', 10.12: [1, 2, 3], 99.0: {9, 0, 1}}
print(min(my_dict) + max(my_dict))
Что покажет приведенный ниже фрагмент кода? (порядок элементов может отличаться)
my_dict = {1: [0, 1], 2: [2, 3], 3: [4, 5]}
for k in my_dict:
print(k)
1
2
3
Что покажет приведенный ниже фрагмент кода? (порядок элементов может отличаться)
my_dict = {1: [0, 1], 2: [2, 3], 3: [4, 5]}
for k in my_dict.values():
print(k)
[0, 1]
[2, 3]
[4, 5]
Какой словарный метод возвращает все ключи словаря и связанные с ними значения в виде последовательности кортежей?
items()
Дополните приведенный код, чтобы он вывел имена всех пользователей (в алфавитном порядке), чей номер оканчивается на 8.
Примечание. Имена необходимо вывести на одной строке, разделяя символом пробела.
users = [{'name': 'Todd', 'phone': '551-1414', 'email': 'todd@gmail.com'},
{'name': 'Helga', 'phone': '555-1618', 'email': 'helga@mail.net'},
{'name': 'Olivia', 'phone': '449-3141', 'email': ''},
{'name': 'LJ', 'phone': '555-2718', 'email': 'lj@gmail.net'},
{'name': 'Ruslan', 'phone': '422-145-9098', 'email': 'rus-lan.cha@yandex.ru'},
{'name': 'John', 'phone': '233-421-32', 'email': ''},
{'name': 'Lara', 'phone': '+7998-676-2532', 'email': 'g.lara89@gmail.com'},
{'name': 'Alina', 'phone': '+7948-799-2434', 'email': 'ali.ch.b@gmail.com'},
{'name': 'Robert', 'phone': '420-2011', 'email': ''},
{'name': 'Riyad', 'phone': '128-8890-128', 'email': 'r.mahrez@mail.net'},
{'name': 'Khabib', 'phone': '+7995-600-9080', 'email': 'kh.nurmag@gmail.com'},
{'name': 'Olga', 'phone': '6449-314-1213', 'email': ''},
{'name': 'Roman', 'phone': '+7459-145-8059', 'email': 'roma988@mail.ru'},
{'name': 'Maria', 'phone': '12-129-3148', 'email': 'm.sharapova@gmail.com'},
{'name': 'Fedor', 'phone': '+7445-341-0545', 'email': ''},
{'name': 'Tim', 'phone': '242-449-3141', 'email': 'timm.ggg@yandex.ru'}]
users.sort(key=lambda x: x['name'])
print(*[i['name'] for i in list(filter(lambda x: x['phone'].endswith('8'), users))])
Дополните приведенный код, чтобы он вывел имена всех пользователей (в алфавитном порядке), у которых нет информации об электронной почте.
Примечание 1. Ключ
Примечание 2. Имена необходимо вывести на одной строке, разделяя символом пробела.
users = [{'name': 'Todd', 'phone': '551-1414', 'email': 'todd@gmail.com'},
{'name': 'Helga', 'phone': '555-1618'},
{'name': 'Olivia', 'phone': '449-3141', 'email': ''},
{'name': 'LJ', 'phone': '555-2718', 'email': 'lj@gmail.net'},
{'name': 'Ruslan', 'phone': '422-145-9098', 'email': 'rus-lan.cha@yandex.ru'},
{'name': 'John', 'phone': '233-421-32', 'email': ''},
{'name': 'Lara', 'phone': '+7998-676-2532', 'email': 'g.lara89@gmail.com'},
{'name': 'Alina', 'phone': '+7948-799-2434'},
{'name': 'Robert', 'phone': '420-2011', 'email': ''},
{'name': 'Riyad', 'phone': '128-8890-128', 'email': 'r.mahrez@mail.net'},
{'name': 'Khabib', 'phone': '+7995-600-9080', 'email': 'kh.nurmag@gmail.com'},
{'name': 'Olga', 'phone': '6449-314-1213', 'email': ''},
{'name': 'Roman', 'phone': '+7459-145-8059'},
{'name': 'Maria', 'phone': '12-129-3148', 'email': 'm.sharapova@gmail.com'},
{'name': 'Fedor', 'phone': '+7445-341-0545', 'email': ''},
{'name': 'Tim', 'phone': '242-449-3141', 'email': 'timm.ggg@yandex.ru'}]
print(*sorted( [ dc['name'] for dc in users if dc.get('email', '') == '' ] ))
Напишите программу, которая будет превращать натуральное число в строку, заменяя все цифры в числе на слова:
0 на zero;
Примечание. Используйте словарь вместо условного оператора.
1 на one;
2 на two;
3 на three;
4 на four;
5 на five;
6 на six;
7 на seven;
8 на eight;
9 на nine.
digits = {
'0': 'zero',
'1': 'one',
'2': 'two',
'3': 'three',
'4': 'four',
'5': 'five',
'6': 'six',
'7': 'seven',
'8': 'eight',
'9': 'nine'
}
print(*[digits[key] for key in input()])
Напишите программу, которая по номеру курса выводит информацию о данном курсе.
Примечание 1. Используйте словарь вместо условного оператора.
Примечание 2. Для удобного вывода используйте строковый методformat()
или f-строки.

key = input()
digits = {
"CS101": "3004, Хайнс, 8:00",
"CS102": "4501, Альварадо, 9:00",
"CS103": "6755, Рич, 10:00",
"NT110": "1244, Берк, 11:00",
"CM241": "1411, Ли, 13:00"
}
print('{}: {}'.format(key, digits[key]))
На мобильных кнопочных телефонах текстовые сообщения можно отправлять с помощью цифровой клавиатуры. Поскольку с каждой клавишей связано несколько букв, для большинства букв требуется несколько нажатий клавиш. При однократном нажатии цифры генерируется первый символ, указанный для этой клавиши. Нажатие цифры 2,3,4 или 5 раз генерирует второй, третий, четвертый или пятый символ клавиши.
Примечание 1. Ваша программа должна обрабатывать как прописные, так и строчные буквы.
Напишите программу, которая отображает нажатия клавиш, необходимые для введенного сообщения.
Примечание 2. Ваша программа должна игнорировать любые символы, не указанные в приведенной выше таблице.

original_map = {
'1': '.,?!:',
'2': 'ABC',
'3': 'DEF',
'4': 'GHI',
'5': 'JKL',
'6': 'MNO',
'7': 'PQRS',
'8': 'TUV',
'9': 'WXYZ',
'0': ' ',
}
work_map = {letter: number * indx
for number, string in original_map.items()
for indx, letter in enumerate(string, 1)}
input_string = input().upper()
for letter in input_string:
print(work_map.get(letter, ''), end='')
Код Морзе для представления цифр и букв использует тире и точки.
Напишите программу для кодирования текстового сообщения в соответствии с кодом Морзе.
Примечание 1. Ваша программа должна игнорировать любые символы, не перечисленные в таблице.

letters = [c for c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789']
morse = ['.-', '-...', '-.-.', '-..', '.', '..-.', '--.', '....', '..', '.---', '-.-', '.-..', '--', '-.', '---', '.--.', '--.-', '.-.', '...', '-', '..-', '...-', '.--', '-..-', '-.--', '--..', '-----', '.----', '..---', '...--', '....-', '.....', '-....', '--...', '---..', '----.']
work_map = dict(zip(letters, morse))
input_string = input().upper()
output_string = (work_map.get(letter) for letter in input_string if work_map.get(letter))
print(' '.join(output_string))
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы