Написание обработчика списков
У меня есть список 1, в котором находятся названия групп и список 2, в котором расположены пары для этих групп. Сложность заключается в том, что одна пара находится в одном элементе списка. И нет четкого разграничителя –- где заканчиваются пары для первой группы, а где начинаются для второй (всего в списке 4 группы).
Имеется такой код, но он ничего не выводит. Думаю проблема в значении split()
lessons = ['ГП-1-22', 'ГП-2-22', 'АСУ-22', 'ГР-1-22']
schedule = ['I Химия (№26) Гончарова Н.А.', 'II Инфор-ка (№58) Уланова Е.В.', 'III Инфор-ка (№58) Уланова Е.В.', 'IV История (№22) Сафиюллина Г.М.', 'V Биол.и эк. (№51) Файзуллина Г.Г.', 'I Астрономия (№29) Каргина О.А.', 'II Литература (№24) Мадиева Т.А.', 'III Биол.и эк. (нет) Асылгареева А.И.', 'IV История (№23) Гарифуллина А.Н.', 'I Матем (№27) Ризванова Г.Г.', 'II Физкультур (Больш. спортзал)', 'III Матем (№27) Ризванова Г.Г.', 'IV Литература (№24) Мадиева Т.А.', 'I Физкультур (Больш. спортзал)', 'II Химия (№26) Гончарова Н.А.', 'III Литература (№16) Яковлева А.А.', 'IV Биол.и эк. (№51) Файзуллина Г.Г.']
schedule_by_group = {}
for group in lessons:
schedule_by_group[group] = []
for lesson in schedule:
for group in lessons:
if lesson.startswith(group.split('-')[0]):
schedule_by_group[group].append(lesson)
group = input("Введите название группы: ")
if group in schedule_by_group:
print(f"Расписание уроков для группы {group}:")
for lesson in schedule_by_group[group]:
print(lesson)
else:
print("Такой группы нет в списке.")
Ответы (1 шт):
Автор решения: n1tr0xs
→ Ссылка
Можно так сделать:
groups = ['ГП-1-22', 'ГП-2-22', 'АСУ-22', 'ГР-1-22']
schedule = [
'I Химия (№26) Гончарова Н.А.',
'II Инфор-ка (№58) Уланова Е.В.',
'III Инфор-ка (№58) Уланова Е.В.',
'IV История (№22) Сафиюллина Г.М.',
'V Биол.и эк. (№51) Файзуллина Г.Г.',
'I Астрономия (№29) Каргина О.А.',
'II Литература (№24) Мадиева Т.А.',
'III Биол.и эк. (нет) Асылгареева А.И.',
'IV История (№23) Гарифуллина А.Н.',
'I Матем (№27) Ризванова Г.Г.',
'II Физкультур (Больш. спортзал)',
'III Матем (№27) Ризванова Г.Г.',
'IV Литература (№24) Мадиева Т.А.',
'I Физкультур (Больш. спортзал)',
'II Химия (№26) Гончарова Н.А.',
'III Литература (№16) Яковлева А.А.',
'IV Биол.и эк. (№51) Файзуллина Г.Г.'
]
schedule_by_group = {group: [] for group in groups}
group_idx = -1
for s in schedule:
if s.split()[0] == 'I':
group_idx += 1
schedule_by_group[groups[group_idx]].append(s)
for key, val in schedule_by_group.items():
print(f'Расписание для группы {key}')
for p in val:
print(f'\t{p}')