Поскольку это, очевидно, тривиальное домашнее задание, я должен быть осторожен, чтобы не сказать слишком много. Я попытаюсь исправить вашу непосредственную проблему, но не опубликую полное решение.
Сейчас вы просматриваете список, проверяете ошибки менее 9, но никогда не начинаете новый список , Если вы проверите размер пропуска, либо он достаточно мал, чтобы добавить его в список, В противном случае вам нужно начать новый список.
Использование «else» с вашим «if» позволяет вам определить, когда начинать новый список.
first_list=[]
first_list.append(ymid[0])
for i in range(len(ymid)-1):
if ymid[i+1]<(ymid[i]+9):
first_list.append(ymid[i+1])
else:
# done with this list
print (first_list)
# start the new list
first_list = [ymid[i]]
Вы заметите, что вывод неправильный, потому что ваш l oop неправильный, но это то, что вы можете исправить при отладке. Добро пожаловать в программирование :)
Поскольку вы уже обработали первый элемент, должен ли ваш l oop начинаться с 0? Стоит ли сравнивать со следующим предметом или с предыдущим? Как только вы заработаете, убедитесь, что вы обрабатываете последний элемент.
Конечно, у вас может быть список списков. Вместо того, чтобы просто печатать каждый результат, вы можете добавить его в список результатов. Только не забудьте начать новый список для следующей группировки.
results = []
current_list=[]
current_list.append(ymid[0])
for i in range(len(ymid)-1):
if ymid[i+1]<(ymid[i]+9):
current_list.append(ymid[i+1])
else:
# add current_list to results
results = current_list
# start the new list
current_list = [ymid[i]]