Модуль 6.2 Методы словаря. Перебор его элементов в цикле.
Отметьте команды, с помощью которых можно создавать копии словаря d.
dict(d)
d.copy()
Вводится строка из русских букв и символов пробела. Необходимо ее закодировать азбукой Морзе, где каждой букве ставится в соответствие код из точки и тире. После каждой закодированной буквы должен стоять пробел (символ окончания кода буквы). После последнего кода пробела быть не должно (в конце строки). Коды азбуки Морзе приведены ниже для русского алфавита и символа пробела:
А .- М — Ш —- Б -… Н -. Щ —.- В .— О — Ъ —.— Г —. П .—. Ы -.— Д -.. Р .-. Ь -..- Е (Ё) . С … Э ..-.. Ж …- Т — Ю ..— З —.. У ..- Я .-.- И .. Ф ..-. ‘ ‘ -…- Й .— Х …. К -.- Ц -.-. Л .-.. Ч —. Результат кодирования вывести в виде строки.
P. S. Для очень ленивых готовый словарь азбуки Морзе можно скачать по адресу: https://github.com/selfedu-rus/others (файл morze-dict.py). Для практики лучше его составить самостоятельно. Да, работа программиста иногда связана и с такой рутиной.
morze = {'а': '.-', 'б': '-...', 'в': '.--', 'г': '--.', 'д': '-..', 'е': '.', 'ё': '.', 'ж': '...-', 'з': '--..', 'и': '..', 'й': '.---', 'к': '-.-', 'л': '.-..', 'м': '--', 'н': '-.', 'о': '---', 'п': '.--.', 'р': '.-.', 'с': '...', 'т': '-', 'у': '..-', 'ф': '..-.', 'х': '....', 'ц': '-.-.', 'ч': '---.', 'ш': '----', 'щ': '--.-', 'ъ': '--.--', 'ы': '-.--', 'ь': '-..-', 'э': '..-..', 'ю': '..--', 'я': '.-.-', ' ': '-...-'} code = input().lower() # Пользовательский ввод, делаю в нижний регистр result = [] # Зашифрованное сообщение в азбуке Морзе for value in code: # Если найдено совпадение то добавляю result.append(morze[value]) # то добавляю в список print(*result)
Имеется закодированная строка с помощью азбуки Морзе. Коды разделены между собой пробелом. Необходимо ее раскодировать, используя азбуку Морзе из предыдущего занятия. Полученное сообщение (строку) вывести на экран.
morze = {'а': '.-', 'б': '-...', 'в': '.--', 'г': '--.', 'д': '-..', 'е': '.', 'ё': '.', 'ж': '...-', 'з': '--..', 'и': '..', 'й': '.---', 'к': '-.-', 'л': '.-..', 'м': '--', 'н': '-.', 'о': '---', 'п': '.--.', 'р': '.-.', 'с': '...', 'т': '-', 'у': '..-', 'ф': '..-.', 'х': '....', 'ц': '-.-.', 'ч': '---.', 'ш': '----', 'щ': '--.-', 'ъ': '--.--', 'ы': '-.--', 'ь': '-..-', 'э': '..-..', 'ю': '..--', 'я': '.-.-', ' ': '-...-'} code = input().split() # Пользовательский ввод, делаю в нижний регистр result = [] # Зашифрованное сообщение в азбуке Морзе for symbol in code: # Передаю каждый символ отдельно for key, value in morze.items(): # Выбираю ключи и значение из словаря if value == symbol: # Сравниваю ключ с символом, оператор in тут не подходит print(key, end="") # Печатаю break # Сбрасываю итерации так как он будет выводить буквы е, ё. Пример: всеё веёрно
Вводится список целых чисел в одну строчку через пробел. С помощью словаря выделите только уникальные (не повторяющиеся) введенные значения и, затем, сформируйте список из уникальных чисел. Выведите его на экран в виде набора чисел, записанных через пробел.
P. S. Такая задача, обычно решается через множества, но мы их еще не проходили, поэтому воспользуемся словарем.
lst_in = input().split() # Пользовательский ввод unic_number = {} # Создаю словарь for value in lst_in: if value not in unic_number: # Если значения нет в словаре unic_number[value] = value # Добавляю в словарь ключи и значение print(*[value for value in unic_number.values()]) # Перебираем список и выводим значение
Вводятся данные в формате:
<день рождения 1> имя_1
<день рождения 2> имя_2
…
<день рождения N> имя_NДни рождений и имена могут повторяться. На их основе сформировать словарь и вывести его в формате (см. пример ниже):
день рождения 1: имя1, …, имяN1
день рождения 2: имя1, …, имяN2
…
день рождения M: имя1, …, имяNMP. S. Для считывания списка целиком в программе уже записаны начальные строчки.
import sys # здесь продолжайте программу (используйте список lst_in) import sys # считывание списка из входного потока list_in = [value.split() for value in list(map(str.strip, sys.stdin.readlines()))] # Сразу делаю вложенные списки # разбиваю по два значения [3, Сергей] brit_day = {} # Создаю словарь for key, value in list_in: # Перебираю элементы в полученном списке и вывожу по два за итерацию (значение из вложенных списков) if key in brit_day.keys(): # Если ключ уже есть # brit_day[key] = [brit_day[key], value] # Добавляю к тому же ключу еще значения brit_day[key].append(value) # Добавляю к тому же ключу еще значения else: brit_day[key] = [value] # Если нет то добавляем ключи и значение в словарь for key, value in brit_day.items(): # Прохожу по словарю с помощь .items() извлекаю ключи и значения print(f"{key}: {', '.join(value)}") # Вывожу значения, если встречаю два значения в value разбиваю их с помощью # ', '.join(value) - разделят значения по заданному условию
Имеется словарь с наименованиями предметов и их весом (в граммах):
things = {'карандаш': 20, 'зеркальце': 100, 'зонт': 500, 'рубашка': 300, 'брюки': 1000, 'бумага': 200, 'молоток': 600, 'пила': 400, 'удочка': 1200, 'расческа': 40, 'котелок': 820, 'палатка': 5240, 'брезент': 2130, 'спички': 10}Сергей собирается в поход и готов взвалить на свои хрупкие плечи максимальный вес в N кг (вводится с клавиатуры). Он решил класть в рюкзак предметы в порядке убывания их веса (сначала самые тяжелые, затем, все более легкие) так, чтобы их суммарный вес не превысил значения N кг. Все предметы даны в единственном экземпляре. Выведите список предметов (в строчку через пробел), которые берет с собой Сергей в порядке убывания их веса.
P. S. 1 кг = 1000 грамм
things = {'карандаш': 20, 'зеркальце': 100, 'зонт': 500, 'рубашка': 300, 'брюки': 1000, 'бумага': 200, 'молоток': 600, 'пила': 400, 'удочка': 1200, 'расческа': 40, 'котелок': 820, 'палатка': 5240, 'брезент': 2130, 'спички': 10} # Получаем число n = int(input()) * 1000 # Меняем местами пары ключ: значение и сортируем словарь lst = {k: v for v, k in things.items()} lst = dict(sorted(lst.items(), reverse=True)) # Заполняем итоговый список согласно условию itog = [] for key, value in lst.items(): if n >= key: itog.append(value) n -= int(key) print(*itog)
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы