Tenho, pequena parte, dos dados abaixo, sequência de números: a = [(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15),(6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 23, 24, 25),(1, 2, 3, 4, 10, 11, 12, 13, 14, 16, 17, 20, 22, 24, 25),(3, 4, 7, 8, 9, 10, 13, 14, 15, 16, 18, 19, 20, 22, 24)] , 17, 20, 22, 24, 25],[3, 4, 7, 8, 9, 10, 13, 14, 15, 16, 18, 19, 20, 22, 24]] Cheguei na análise abaixo: sequencia = [(15,), (10, 2, 3), (4, 5, 2, 1, 1, 2), (2, 4, 4, 3, 1, 1)] seqMax = [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [10, 11, 12, 13, 14], [7, 8, 9, 10]] Ou seja: Primeira lista de números: (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), possui 15 números sequenciais: (15,) e a maior sequência encontrada é ela mesma; Segunda lista de números: (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 23, 24, 25), possui 3 sequências: (10, 2, 3) onde 10 = 6, 7, 8, 9, 10, 11, 12, 13, 14, 15; 2 = 19, 20 e 3 = 23, 24, 25; e a maior sequência é a de 10: 6, 7, 8, 9, 10, 11, 12, 13, 14, 15. Montei uma função, código completo abaixo, mas gostaria de validar com você se existe uma forma mais fácil de codificar: import pandas as pd a = [(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15),(6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 23, 24, 25),(1, 2, 3, 4, 10, 11, 12, 13, 14, 16, 17, 20, 22, 24, 25),(3, 4, 7, 8, 9, 10, 13, 14, 15, 16, 18, 19, 20, 22, 24)] def sequencia_linha(x): a = list(x) ab = [] sequencia=[] seqMaxInterno=[] for n in a: if len(ab)>0: if max(ab)+1 == n: ab.append(n) cont+=1 else: if len(ab) > len(seqMaxInterno): seqMaxInterno=ab sequencia.append(cont) ab=[] ab.append(n) cont=1 else: ab.append(n) cont=1 if len(ab) > len(seqMaxInterno): seqMaxInterno=ab sequencia.append(cont) seqMax.append(seqMaxInterno) return tuple(sequencia) seqMax=[] sequencia=[] for x in a: sequencia.append(sequencia_linha(x)) Continue reading...