Ho una lista di interi ...lista gruppo di interi da sequenza continua
[1,2,3,4,5,8,9,10,11,200,201,202]
vorrei raggrupparli in una lista di liste in cui ogni sottoelenco contiene numeri interi la cui sequenza non è stata interrotta. Ti piace questa ...
[[1,5],[8,11],[200,202]]
Ho un lavoro, piuttosto goffo intorno ...
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
E 'il meglio che potessi fare. C'è un modo più "pitonico" per fare questo? Grazie ..
pensare in termini di dove i salti sono invece in cui il le gamme sono È possibile memorizzare i risultati in una semplice serie di int che ogni voce è un indice corrispondente a un salto nell'array originale. Penso che questo sia più semplice ... e nella remota possibilità che questo sia riutilizzabile o codice di libreria puoi incapsulare tutto ciò nel funzionamento di una classe. – djechlin
Sono abbastanza sicuro che questo è un duplicato anche se non riesco a cercarlo adesso. – jamylak