doza_and
Вероятно мне нужно было сразу привести весь текст задания. И так.
“”“Упражнение ”Детские имена“
ЗАГС г. Москвы ведет статистику детских имен. На сайте этой организации
публикуется статистика наиболее популярных имен по году рождения ребенка.
Файлы для этого упражнения находятся в файлах ”babynames_boys.html“ и
”babynames_girls.html". Они содержат сырой HTML-код.
1. Создайте функцию extract_names(filename), которая принимает в качестве
аргумента имя файла и возвращает данные из него в виде словаря вида:
babynames = {
'София, Софья': {
2012: [3841, 6.0]',
2010: [3668, 6.2]',
2005: [2127, 4.8]',
2000: [826, 2.4]',
1990: [193, 0.4]',
},
'Виктория': {
2012: [2219, None],
2010: [1994, None],
2005: [1829, None],
2000: [1076, None],
1990: [1033, None],
},
...
}
2. Создайте функцию print_names(). Функция получает в качестве аргумента
словарь babynames.Затем:
1. Запрашивает у пользователя интересующий его год.
2. Выдает запрошенную инфу, но выдача сортируется по кол-ву детей и форматируется следующим образом:
София, Софья 3841 6,0%
Мария, Марья 3735 5,8%
...
Виктория 2219
Полина 2051
...
3. Функция print_names() работает в цикле : запрос - вывод инфы, до прерывания посредством команды от поьзователя.
Поэтому предлагаемое Вами изменение структуры словаря сильно упрощает мою задачу (и такая организация словаря логичнее и компактнее), но нарушает условие.
Теперь собственно решение.
1) Файл проанализирован и словарь создан.
2) Простой вывод у меня тоже получился (и насколько я понимаю замечаний к нему нет)
3) Осталась сортировка. Создавать из нашего словаря babynames сортированный список и уже его печатать не хочу, ибо жопой чую, что это костыль и есть более простые способы.
F1F1F!
Как вариант можно из требуемой структуры словаря создать новый, с Вашей структурой, и уже с ним работать…. Но мне кажется, что это опять же костыль.