Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 13.11.2020
Сообщений: 14

Словари. С днем рождения!

19.11.2020, 17:37. Показов 5213. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вася захотел составить словарь для специалиста отдела кадров. У него есть список дней рождения, и он хочет напечатать на листке, кто в каком месяце празднует день рождения. По известному списку всех дней рождения научитесь определять всех, у кого день рождения в заданном месяце.
Входные данные
В первой строчке записано целое число N (1 ≤ N ≤ 10^5). В следующих N строчках записана информация о дне рождения каждого сотрудника.
Каждая строчка состоит из трёх частей, разделённых пробелом — фамилии сотрудника, дня и месяца его рождения. Фамилия — это строка из русских букв, день — число от 1 до 31, а месяц — строка из набора «январь», «февраль», «март», «апрель», «май», «июнь», «июль», «август», «сентябрь», «октябрь», «ноябрь», «декабрь». Фамилии всех сотрудников различны.

В следующей строчке записано целое число К (1 ≤ К ≤ 100) — количество запросов, на которое надо ответить.
В следующих К строках содержатся сами запросы. Каждый запрос — название месяца в том же формате, в котором они задаются выше.
Выходные данные
Для каждого запроса в отдельной строчке через пробел выведите фамилии всех сотрудников, которые родились в указанном месяце, а после каждой фамилии через двоеточие — день. Фамилии упорядочьте в лексикографическом порядке. Если в заданном месяце никто не родился, в этой строке выведите «».

Учтите, что в конце каждой строчки не должно быть лишнего пробела, иначе тест не будет пройден.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.11.2020, 17:37
Ответы с готовыми решениями:

Почтовый автомат предлагает поздравительные открытки на три темы (1- Новогодние, 2 - С Днем Рождения, 3 - С Днем Защитни
Почтовый автомат предлагает поздравительные открытки на три темы (1-Новогодние, 2 - С Днем Рождения, 3 - С Днем Защитника Отечества) в трех...

Почтовый автомат предлагает поздравительные открытки на три темы (1-Новогодние, 2-С Днем Рождения, 3-С Днем Защитника От
Почтовый автомат предлагает поздравительные открытки на три темы (1-Новогодние, 2-С Днем Рождения, 3-С Днем Защитника Отечества) в трех...

Нахождение дня рождения класса; словари
Есть словарь, школьный класс (фамилия и инициалы, дата рождения, месяц рождения, год рождения). Вычислить день рождения класса (среднее...

3
0 / 0 / 0
Регистрация: 13.11.2020
Сообщений: 14
21.11.2020, 21:14  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
dictionary = {}
 
 
def find_biththday(months, dictionary):
    fam = []
    for x, y in dictionary.items():
        if y[1] == months:
            fam.append(x)
        else:
            pass
    fam = sorted(fam)
    return ', '.join(map(str, fam))
 
 
def parse_string(strings, dictionary):
    list = strings.split()
    dictionary[list[0]] =[list[1], list[2]]
 
 
usr_input = input('Введите количество сотрудников для ввода в словарь:')
i = 1
while i <= int(usr_input):
    user = input('Введите через пробел "Фамилии" "День" "Месяц" рождения сотрудника' + str(i) + ':')
    parse_string(user, dictionary)
    i = i + 1
question = input('Введите количество вопросов:')
v = 1
while v <= int(question):
    user = input('Введите месяц')
    print('Фамилии сотрудников, родившихся в этом месяце:' + str(find_biththday(user, dictionary)))
    v = v + 1
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
21.11.2020, 22:02
Лучший ответ Сообщение было отмечено ilyaSokolov как решение

Решение

ilyaSokolov,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
dictionary = {}
 
def find_biththday(months, dictionary):
    fam = []
    for x, y in dictionary.items():
        if y[1] == months:
            fam.append(x + ':' + str(y[0]))
        else:
            pass
    fam = sorted(fam)
    return ' '.join(map(str, fam))
    
def parse_string(strings, dictionary):
    list = strings.split()
    dictionary[list[0]] =[list[1], list[2]]
    
usr_input = input('Введите количество сотрудников для ввода в словарь:')
i=1
while i<=int(usr_input):
    user = input('Введите через пробел "Фамилии" "День" "Месяц" рождения сотрудника' + str(i) + ':')
    parse_string(user, dictionary)
    i=i+1
question = input('Введите количество вопросов:')
v=1
while v<=int(question):
    user = input('Введите месяц')
    tmp = str(find_biththday(user,dictionary))
    if tmp :
        print('Фамилии сотрудников, родившихся в этом месяце:' + tmp)
    else :
        print("������")
    v=v+1
1
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
22.11.2020, 08:25
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
d = {}
for _ in range(int(input())):
    surname, day, month = input().split()
    d.setdefault(month, []).append(f'{surname}:{day}')
for key, value in d.items():
    d[key] = sorted(value)
# print(d)
for _ in range(int(input())):
    query = input()
    if query in d:
        print(*d[query])
    else:
        print(':(')
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.11.2020, 08:25
Помогаю со студенческими работами здесь

Почтовый автомат предлагает поздравительные открытки на три темы (1Новогодние, 2 - С Днем Рождения, 3 - С Днем Защитника
Pascal ABC - Почтовый автомат предлагает поздравительные открытки на три темы (1Новогодние, 2 - С Днем Рождения, 3 - С Днем Защитника...

Найти все годы в течение столетия, когда день недели рождения совпадает с днем недели очередного дня рождения
Дана дата дня рождения в формате день:месяц:год. Найти все годы в течение столетия, когда день недели рождения совпадает с днем недели...

.None с днём рождения!
Поздравляю!!!

С днем рождения, go
Сегодня оказывается день рождения у нашего форумчанина, довольно таки известного и долгопребывающего здесь go. Человек, замечающий...

С днём рождения magirus
От себя лично скажу, как сказал мой знакомый, когда исполнилось ему 50 - &quot;за эти годы я понял, что главное здоровье и работа&quot;, так вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru