Código de Python - Buscar la cantidad máxima de valores consecutivos en una lista

Imágen de perfil
Val: 1.703
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Buscar la cantidad máxima de valores consecutivos en una listagráfica de visualizaciones


Python

Publicado el 27 de Septiembre del 2020 por Katas (150 códigos)
745 visualizaciones desde el 27 de Septiembre del 2020
Función que recibe una lista de valores enteros, y devuelve la cantidad máxima de números consecutivos ascendentes en la lista.
Si la lista contiene un valor no entero, lo omite como si no estuviera.

1
2
3
4
5
6
ascendente([]) # 0
ascendente([1]) # 1
ascendente([1,3]) # 1
ascendente([1,2,"a","c",3]) # 3
ascendente([1,2,3,3,4]) # 3
ascendente([1,2,4,3,4,5,6,5]) # 4

1

Publicado el 27 de Septiembre del 2020gráfica de visualizaciones de la versión: 1
746 visualizaciones desde el 27 de Septiembre del 2020
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from functools import reduce
 
def ascendente(lst):
    """
    Buscar la cantidad de elementos ascendetes consecutivos
    @param list lst - lista de enteros. Si recibe un valor no entero, se elimina
                      y es como si no se hubiera recibido
    @return integer - cantidad de elementos consecutivos
    """
    def calcular(acum, el):
        if isinstance(el, int)==False:
            return acum
 
        if acum[0]==None:
            # primer elemento
            return [el, 1, 1]
 
        if acum[0]+1==el:
            # el elemento es consecutivo al anterior
            return [el, acum[1]+1, acum[1]+1 if acum[2]<=acum[1] else acum[2]]
 
        # el elemento no es consecutivo con el anterior
        return [el, 1, acum[2]]
 
    # [None, 0, 0]
    # el primer valor contiene el anterior numero
    # el segundo valor contiene los numeros consecutivos
    # el tercer valor cotiene el máximo de numeros consecutivos encontrados
    return list(reduce(calcular, lst, [None, 0, 0]))[2]



Comentarios sobre la versión: 1 (0)


No hay comentarios
 

Comentar la versión: 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s6507