Dividir una lista en partes en función de un conjunto de índices en Python
¿Cuál es la mejor manera de dividir una lista en partes según un número arbitrario de índices? P.ej. dado el código de abajo
indexes = [5, 12, 17]
list = range(20)
devolver algo como esto
part1 = list[:5]
part2 = list[5:12]
part3 = list[12:17]
part4 = list[17:]
Si no hay índices debe devolver la lista completa.