У меня есть список l=[2,3,4,5,6,99,7,8,9,10,11,12,100,13,14,15,16,17,18,101]
, и я хотел бы разбить l
на подсписки [2,3,4,5,6], [7,8,9,10,11,12],[13,14,15,16,17,18]
, что означает, что я использую цифры-разделители 99,100,101, которые принадлежат separators = [99,100,101]
в качестве флага, чтобы указать, куда мне следует идти к следующему списку.
В частности, эти подсписки могут не иметь одинакового количества элементов, но различаются по размеру только 1 (5 или 6). Примечание: может быть более 3 разделителей.
Есть ли эффективный способ сделать это в Python 3? Я подумал о том, чтобы сначала извлечь индексы элементов-разделителей, а затем соответствующим образом нарезать список, но он кажется слишком сложным и требует значительных вычислительных ресурсов.
Некоторое понимание будет отличным!
Добавление (предложение от @Netwave): Моя попытка (которая явно не работает):
g = []
for i in l:
if i in separators:
g += [l[:l.index(i)]]
Выход:
>>> g
[[2, 3, 4, 5, 6], [2, 3, 4, 5, 6, 99, 7, 8, 9, 10, 11, 12], [2, 3, 4, 5, 6, 99, 7, 8, 9, 10, 11, 12, 100, 13, 14, 15, 16, 17, 18]]