Написание обработчика списков

Рейтинг: 0Ответов: 1Опубликовано: 29.03.2023

У меня есть список 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("Такой группы нет в списке.")

Ответы

▲ 0Принят

Можно так сделать:

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}')