Я вижу, что вам больше нравится практика, нежели теорема :) Сегодня я разберу одну из олимпиадных задач, довольно простую. Суть задачи в том, чтобы из англо-латинского словаря сделать латино-английский. Примеры тестов Входные данные
3
apple - malum, pomum, popula
fruit - baca, bacca, popum
punishment - malum, multa Выходные данные
7
baca - fruit
bacca - fruit
malum - apple, punishment
multa - punishment
pomum - apple
popula - apple
popum - fruit Входные данные черпаются из input.txt, вывод сбрасывается в output.txt. Довольно стандартное требование.
Входные данные лексикографически отсортированы, и выходные данные тоже требуются отсортированными. Вначале я покажу своё решение, потом начну объяснять. Итак, моё решение: f = open('input.txt')
N = f.readline()
d = {}
for line in f:
words = line.strip().split(' - ')
en = words[0]
lat = words[1].split(', ')
for key in lat:
if key in d:
d[key].append(en)
else:
d[key] = [en]
f.close()