Словари. Основы работы
Основы работы со словарями
Что выведет следующий программный код?:
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}} s = min(my_dict) + max(my_dict) print(s)
Что покажет приведенный ниже фрагмент кода? (порядок элементов может отличаться):
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'}] res = [user['name'] for user in users if user['phone'].endswith('8')] print(*sorted(res))
Дополните приведенный код, чтобы он вывел имена всех пользователей (в алфавитном порядке), у которых нет информации об электронной почте.
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'}] r = [user['name'] for user in users if 'email' not in user.keys() or user['email'] == ''] print(*sorted(r))
Напишите программу, которая будет превращать натуральное число в строку, заменяя все цифры в числе на слова:
- 0 на zero;
- 1 на one;
- 2 на two;
- 3 на three;
- 4 на four;
- 5 на five;
- 6 на six;
- 7 на seven;
- 8 на eight;
- 9 на nine.
n = int(input())
dd = dict(zip([str(i) for i in range(10)], ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'])) r = [dd[key] for key in str(n)] print(*r)
Напишите программу, которая по номеру курса выводит информацию о данном курсе.
a = input()
d = {'CS101': '3004, Хайнс, 8:00', 'CS102': '4501, Альварадо, 9:00', 'CS103': '6755, Рич, 10:00', 'NT110': '1244, Берк, 11:00', 'CM241': '1411, Ли, 13:00'} print(f'{a}: {d[a]}')
На мобильных кнопочных телефонах текстовые сообщения можно отправлять с помощью цифровой клавиатуры. Поскольку с каждой клавишей связано несколько букв, для большинства букв требуется несколько нажатий клавиш. При однократном нажатии цифры генерируется первый символ, указанный для этой клавиши. Нажатие цифры 2,3,4 или 5 раз генерирует второй, третий, четвертый или пятый символ клавиши.
Напишите программу, которая отображает нажатия клавиш, необходимые для введенного сообщения.
a = input().upper()
d = {'1': '.,?!:', '2': 'ABC', '3': 'DEF', '4': 'GHI', '5': 'JKL', '6': 'MNO', '7': 'PQRS', '8': 'TUV', '9': 'WXYZ', '0': ' '} for i in range(len(a)): for key, value in d.items(): if a[i] in value: x = list(value) print(key * (x.index(a[i]) + 1), end='')
Код Морзе для представления цифр и букв использует тире и точки. Напишите программу для кодирования текстового сообщения в соответствии с кодом Морзе.
letters = [c for c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789']
morse = ['.-', '-...', '-.-.', '-..', '.', '..-.', '--.', '....', '..', '.---', '-.-', '.-..', '--', '-.', '---', '.--.', '--.-', '.-.', '...', '-', '..-', '...-', '.--', '-..-', '-.--', '--..', '-----', '.----', '..---', '...--', '....-', '.....', '-....', '--...', '---..', '----.'] md = dict(zip(letters, morse)) for l in input().upper(): for key, value in md.items(): if l in key: print(md[l], end=' ')