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

Модуль 10.4 (Задачи на словари) курса «Поколение Python: курс для продвинутых». В данном уроке продолжаем изучать работу с словарями.

Публикуем решения на урок 10.4 Задачи на словари.

Программисты, как вы уже знаете, постоянно учатся, а в общении между собой используют весьма специфический язык. Чтобы систематизировать ваш пополняющийся профессиональный лексикон, мы придумали эту задачу. Напишите программу создания небольшого словаря сленговых программерских выражений, чтобы она потом по запросу возвращала значения из этого словаря.

data =  [(input().split(':')) for i in range(int(input()))]
data = {i[0].lower(): i[1].strip() for i in data}
for i in [input().lower() for i in range(int(input()))]:
    print(data.get(i, "Не найдено"))

Анаграмма – слово (словосочетание), образованное путём перестановки букв, составляющих другое слово (или словосочетание). Например, английские слова evil и live – это анаграммы.

На вход программе подаются два слова. Напишите программу, которая определяет, являются ли они анаграммами.

Формат входных данных
На вход программе подаются два слова, каждое на отдельной строке.
Формат выходных данных
Программа должна вывести YES если слова являются анаграммами и NO в противном случае.
s = sorted(input())
dct1 = dict(zip(range(len(s)), s))

s = sorted(input())
dct2 = dict(zip(range(len(s)), s))

print('YES' if dct1 == dct2 else 'NO')

На вход программе подаются два предложения. Напишите программу, которая определяет, являются они анаграммами или нет. Ваша программа должна игнорировать регистр символов, знаки препинания и пробелы.

Примечание. Кроме слов в тексте могут присутствовать пробелы и знаки препинания .,!?:;-. Других символов в тексте нет.
s = sorted(s for s in input().lower() if s.isalpha())
dct1 = dict(zip(range(len(s)), s))
s = sorted(s for s in input().lower() if s.isalpha())
dct2 = dict(zip(range(len(s)), s))

print('YES' if dct1 == dct2 else 'NO')

Вам дан словарь, состоящий из пар слов-синонимов. Повторяющихся слов в словаре нет. Напишите программу, которая для одного данного слова определяет его синоним.

Примечание 1. Гарантируется, что синоним введенного слова существует в словаре.
Примечание 2. Все слова в словаре начинаются с заглавной буквы.
lovar=dict([[i for i in input().split(' ')] for i in range(int(input()))])
a=input()
for key,value in lovar.items():
    if key==a:
        print(value)
    if value==a:
        print(key)

На вход программе подается список стран и городов каждой страны. Затем даны названия городов. Напишите программу, которая для каждого города выводит, в какой стране он находится.

d = {}
for _ in range(int(input())):
    s = input().split()
    d[s[0]] = s[1:]
for _ in range(int(input())):
    city = input()
    for country, cities in d.items():
        if city in cities:
            print(country)

Тимур записал телефоны всех своих друзей, чтобы автоматизировать поиск нужного номера.

У каждого из друзей Тимура может быть один или более телефонных номеров. Напишите программу, которая поможет Тимуру находить все номера определённого друга.

Примечание 1. Телефоны одного человека выводите в одну строку через пробел в том порядке, в каком они были заданы во входных данных.
Примечание 2. Количество строк в ответе должно быть равно числу m.
Примечание 3. Телефон — это несколько цифр, записанных подряд, а имя может состоять из букв русского или английского алфавита. Записи не повторяются.
res = {}
for i in range(int(input())):
    a, b = input().lower().split()
    res[b] = res.get(b, []) + [a]

for i in range(int(input())):
    name = input().lower()
    print(*res.get(name, ['абонент не найден']))

Напишите программу для расшифровки секретного слова методом частотного анализа.

Примечание. Гарантируется, что частоты букв не повторяются.
f = input()
d = {}
for u in f:
    d.setdefault(f.count(u), u)

for _ in range(int(input())):
    key, value = input().split(':')
    f = f.replace(d[int(value)], key)
print(f)

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

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

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