Разделить список на отдельные списки с условием Python
Имеется список:
mas = ['1. Химия', '2. Индивидуальный проект', '3. Математика', '4. История', '5. Основы безопасности жизнедеятельности', '6. Методика решения математических задач повышенной сложности (внеурочная деятельность)',
'7. Родной (русский) язык', '1. Классный час и ПДД', '2. Физика', '3. Русский язык', '4. Литература', '5. Математика', '6. Математика', '7. Английский язык', '8. Информатика', '1. Математика', '2. Английский язык',
'3. Информатика', '4. История', '5. Практическое черчение', '6. Говорим и пишем правильно (внеурочная деятельность)', '7. Обществознание', '8. Астрономия', '1. Физика', '2. Английский язык', '3. Информатика',
'4. Математика', '5. Математика', '6. Литература', '7. Физическая культура', '8. Физическая культура', '1. Физика', '2. Физика', '3. Литература', '4. Обществознание', '5. Практикум по физике', '6. Информатика']
Мне нужно разделить этот список на другие списки таким образом, чтобы в каждом отдельном списке были подходящие по дням уроки. К примеру, должно получится так:
[
['1. Химия', '2. Индивидуальный проект', '3. Математика', '4. История', '5. Основы безопасности жизнедеятельности', '6. Методика решения математических задач повышенной сложности (внеурочная деятельность)', '7. Родной (русский) язык'],
['1. Классный час и ПДД', '2. Физика', '3. Русский язык', '4. Литература', '5. Математика', '6. Математика', '7. Английский язык', '8. Информатика']
]
Возможно ли это реализовать?
Ответы (2 шт):
Автор решения: Jack_oS
→ Ссылка
черновой, но рабочий вариант:
num_last = 0
day = []
new_mas = []
for m in mas:
num = int(m.split('.')[0])
if num > num_last:
day.append(m)
else:
new_mas.append(day)
day = [m]
num_last = num
new_mas.append(day)
в new_mas:
[
['1. Химия', '2. Индивидуальный проект', '3. Математика', '4. История', '5. Основы безопасности жизнедеятельности', '6. Методика решения математических задач повышенной сложности (внеурочная деятельность)', '7. Родной (русский) язык'],
['1. Классный час и ПДД', '2. Физика', '3. Русский язык', '4. Литература', '5. Математика', '6. Математика', '7. Английский язык', '8. Информатика'],
['1. Математика', '2. Английский язык', '3. Информатика', '4. История', '5. Практическое черчение', '6. Говорим и пишем правильно (внеурочная деятельность)', '7. Обществознание', '8. Астрономия'],
['1. Физика', '2. Английский язык', '3. Информатика', '4. Математика', '5. Математика', '6. Литература', '7. Физическая культура', '8. Физическая культура'],
['1. Физика', '2. Физика', '3. Литература', '4. Обществознание', '5. Практикум по физике', '6. Информатика']
]
Автор решения: Danis
→ Ссылка
res = []
for el in mas:
if el.startswith('1.'):
res.append([])
res[-1].append(el)
print(res)