Разбираем интересную задачу про словарь
Простой Пайтон — программист работает с ним ежедневно
Простой Пайтон. Одна из составляющих деятельности программиста – это обучение. Век живи, а век учись – это точно про мастеров айти-сферы. Поэтому сегодня мы предлагаем своим читателям проверить свои силы и решить одну интересную задачку про словарь. Если считаете, что вам это по силам – скорее приступайте к решению! Условия:
Входные данные:
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
Выше вы видите пример одной из олимпиадных задач, которые дают для решения юным программистам. Её суть в том, чтобы преобразовать из англо-латинского словаря латино-английский. Сперва попробуйте решить её сами. Если что-то не получится, подглядите в решение от GoMother.
Все наши ребята знают о решении таких задачек. Дело в том, что на уроках мы не записываем скучные конспекты и не повторяем один и тот же материал сотни раз. По мнению специалистов GoMother, учёба должна быть интересной и лёгкой. Иначе, это не обучение, а принуждение.
Если вы хотите креативности, создания интересных проектов, любите рисовать на графическом планшете или мечтаете разрабатывать игры – ждём вас в офисе на м.Житомирская и м.Академгородок.
Решение задачи для простой Пайтон
Что же, надеемся, у тебя вышло придумать своё решение. В противном случае, не стоит расстраиваться – практикуйся и в другой раз всё обязательно выйдет.
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()
for key in d:
d[key].sort()
g = open(‘output.txt’, ‘w’)
g.write(str(len(d)) + ‘\n’)
for lat in sorted(d):
g.write(lat + ‘ — ‘ + ‘, ‘.join(d[lat]) + ‘\n’)
g.close()
Объясним программирование на Python
Откройте файл и прочтите число N (оно нам не понадобится); создайте также пустой словарь.
Отделите слово от его переводов; из строки с переводами получите список латинских слов.
Далее проверьте, есть ли латинское слово в вашем словаре. Если есть – допишите ещё один английский перевод. Если нет — впишите его. После махинаций закройте файл. Далее нужно все списки переводов отсортировать (как требуется от нас условиях задачи).
Откройте файл на запись. Первой строкой запишите число получившихся слов. Далее в отсортированном порядке запишите латинские слова, затем их переводы. Закройте файл.
Python разработка: где научат?
Вот и всё) Конечно, вариантов существует масса, но этот – один из самых эстетичных в оформлении. В нашей школе мы расскажем ещё несколько вариантов – приходите на пробное бесплатное занятие и испытайте себя!