Новости

Разбираем интересную задачу про словарь

Прокрутить вниз
Опубликовано:

Простой Пайтон — программист работает с ним ежедневно

Простой Пайтон. Одна из составляющих деятельности программиста – это обучение. Век живи, а век учись – это точно про мастеров айти-сферы. Поэтому сегодня мы предлагаем своим читателям проверить свои силы и решить одну интересную задачку про словарь. Если считаете, что вам это по силам – скорее приступайте к решению! Условия:


Входные данные:

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 разработка: где научат?

Вот и всё) Конечно, вариантов существует масса, но этот – один из самых эстетичных в оформлении. В нашей школе мы расскажем ещё несколько вариантов – приходите на пробное бесплатное занятие и испытайте себя!

Оставьте номер и мы поможем подобрать курс

Сделай шаг к успешному будущему

Child looks up!