Словари. Задачи
Задачи на словари
Программисты, как вы уже знаете, постоянно учатся, а в общении между собой используют весьма специфический язык. Чтобы систематизировать ваш пополняющийся профессиональный лексикон, мы придумали эту задачу. Напишите программу создания небольшого словаря сленговых программерских выражений, чтобы она потом по запросу возвращала значения из этого словаря.
В первой строке задано одно целое число n — количество слов в словаре. В следующих n строках записаны слова и их определения, разделенные двоеточием и символом пробела. В следующей строке записано целое число m — количество поисковых слов, чье определение нужно вывести. В следующих m строках записаны сами слова, по одному на строке.
Для каждого слова, независимо от регистра символов, если оно присутствует в словаре, необходимо вывести его определение. Если слова в словаре нет, программа должна вывести «Не найдено» (без кавычек).
a = [input().split(':') for i in range(int(input()))] for i in a: i[0] = i[0].lower() c = int(input()) b = [input().lower() for i in range(c)] am = dict(a) for x in b: if x in am: print(am[x].strip()) else: print('Не найдено')
Анаграмма – слово (словосочетание), образованное путём перестановки букв, составляющих другое слово (или словосочетание). Например, английские слова evil и live – это анаграммы.
На вход программе подаются два слова. Напишите программу, которая определяет, являются ли они анаграммами.
Программа должна вывести YES, если слова являются анаграммами, или NO в противном случае.
a = sorted(input()) b = sorted(input()) am_1 = dict(zip(range(len(a)), a)) am_2 = dict(zip(range(len(b)), b)) print('YES' if am_1 == am_2 else 'NO')
На вход программе подаются два предложения. Напишите программу, которая определяет, являются они анаграммами или нет. Ваша программа должна игнорировать регистр символов, знаки препинания и пробелы.
Программа должна вывести YES , если предложения – анаграммы и NO в противном случае.
a = sorted([i for i in input().lower() if i.isalpha()]) b = sorted([i for i in input().lower() if i.isalpha()]) print ('YES' if a == b else 'NO')
Вам дан словарь, состоящий из пар слов-синонимов. Повторяющихся слов в словаре нет. Напишите программу, которая для одного данного слова определяет его синоним.
На вход программе подается количество пар синонимов n. Далее следует n строк, каждая строка содержит два слова-синонима. После этого следует одно слово, синоним которого надо найти.
Программа должна вывести одно слово, синоним введенного.
a = [input().split() for i in range(int(input()))] b = input() am = dict(a) for x in am: if b in x: print(am[x]) elif b in am[x]: print(x)
На вход программе подается список стран и городов каждой страны. Затем даны названия городов. Напишите программу, которая для каждого города выводит, в какой стране он находится.
Программа получает на вход количество стран n. Далее идет n строк, каждая строка начинается с названия страны, затем идут названия городов этой страны. В следующей строке записано число m, далее идут m запросов — названия каких-то m городов, из перечисленных выше.
Программа должна вывести название страны, в которой находится данный город.
a = [input().split() for _ in range(int(input()))] am = {} for x in a: am[x[0]] = x[1:] c = int(input()) b = [input() for _ in range(c)] for y in b: for z in am: if y in am[z]: print(z)
Тимур записал телефоны всех своих друзей, чтобы автоматизировать поиск нужного номера. У каждого из друзей Тимура может быть один или более телефонных номеров. Напишите программу, которая поможет Тимуру находить все номера определённого друга.
В первой строке задано одно целое число n — количество номеров телефонов, информацию о которых Тимур сохранил в телефонной книге. В следующих n строках заданы телефоны и имена их владельцев через пробел. В следующей строке записано целое число m — количество поисковых запросов от Тимура. В следующих m строках записаны сами запросы, по одному на строке. Каждый запрос — это имя друга, чьи телефоны Тимур хочет найти.
Для каждого запроса от Тимура выведите в отдельной строке все телефоны, принадлежащие человеку с этим именем (независимо от регистра имени). Если в телефонной книге нет телефонов человека с таким именем, выведите в соответствующей строке «абонент не найден» (без кавычек).
am = {} for _ in range(int(input())): key, value = input().lower().split() key, value = value, key am.setdefault(key, []).append(value) a = [input().lower() for _ in range(int(input()))] for x in a: if x in am: print(*am[x]) else: print('абонент не найден')
Напишите программу для расшифровки секретного слова методом частотного анализа.
В первой строке задано зашифрованное слово. Во второй строке задано одно целое число n – количество букв в словаре. В следующих n строках записано, сколько раз конкретная буква алфавита встречается в этом слове – <буква>: <частота>.
Программа должна вывести дешифрованное слово.
a = input() b = [input().split(': ') for _ in range(int(input()))] sf = {} am = {} for x in a: sf[x] = sf.get(x, 0) + 1 for k, v in b: am.setdefault(v, []).append(k) for y in a: print(*am[str(sf[y])], end='')