Решение модуля 6.2 Добрый, добрый Python

Модуль 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, …, имяNM

P. 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)

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

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

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