que tiene una lista de números enteros ...lista de grupos de enteros por secuencia continua
[1,2,3,4,5,8,9,10,11,200,201,202]
me gustaría agruparlos en una lista de listas que cada sub-lista contiene números enteros cuya secuencia no se ha roto. Así ...
[[1,5],[8,11],[200,202]]
que tienen una obra más bien precarios sobre ...
lSequenceOfNum = [1,2,3,4,5,8,9,10,11,200,201,202]
lGrouped = []
start = 0
for x in range(0,len(lSequenceOfNum)):
if x != len(lSequenceOfNum)-1:
if(lSequenceOfNum[x+1] - lSequenceOfNum[x]) > 1:
lGrouped.append([lSequenceOfNum[start],lSequenceOfNum[x]])
start = x+1
else:
lGrouped.append([lSequenceOfNum[start],lSequenceOfNum[x]])
print lGrouped
Es lo mejor que podía hacer. ¿Hay una forma más "pitonica" de hacer esto? Gracias ..
Piense en ello en términos de dónde son los saltos en lugar de en el que el los rangos son Puede almacenar los resultados en una matriz simple de entradas donde cada entrada es un índice correspondiente a un salto en la matriz original. Creo que esto es más simple ... y en caso de que esto sea reutilizable o código de biblioteca, puede encapsular todo eso en el funcionamiento de una clase. – djechlin
Estoy bastante seguro de que este es un duplicado, aunque no puedo buscarlo ahora mismo. – jamylak