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

Модуль 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. Ключ email может отсутствовать в словаре.
Примечание 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-строки.
Решение модуля 10.2 Поколение Python: для продвинутых
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. Ваша программа должна игнорировать любые символы, не указанные в приведенной выше таблице.
Решение модуля 10.2 Поколение Python: для продвинутых
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))

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

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

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