Python: elementos máximos hasta el índice actual en la lista

Dada la lista con elementos, extraiga el elemento si es el elemento máximo hasta el índice actual.

Entrada  : test_list = [4, 6, 7, 8]

Salida : [4, 6, 7, 8]

Explicación : todos los elementos son máximos hasta su índice.

Entrada  : test_list = [6, 7, 3, 6, 8, 7]

Salida : [7, 8]

Explicación : 7 y 8 son máximos hasta su índice.

Método #1: Usar bucle

Este es el método bruto en el que se puede realizar esta tarea. En esto, ejecutamos un bucle anidado hasta el índice actual e incrementamos el contador si todos los elementos son más bajos que el elemento actual, si el contador coincide con el índice actual, sugiere que el elemento actual es máximo hasta el índice actual.

Python3

# Python3 code to demonstrate working of
# Elements Maximum till current index in List
# Using loop
  
# initializing list
test_list = [3, 5, 2, 6, 7, 9, 3]
  
# printing original list
print("The original list : " + str(test_list))
  
# Using loop
res = []
for idx in range(1, len(test_list)):
    cnt = 0
  
    # inner loop to count element less than current
    for idx2 in range(idx):
        if test_list[idx] > test_list[idx2]:
            cnt = cnt + 1
    if cnt == idx:
        res.append(test_list[idx])
  
# printing result
print("Extracted Maximum elements : " + str(res))
Producción

The original list : [3, 5, 2, 6, 7, 9, 3]
Extracted Maximum elements : [5, 6, 7, 9]


Método n.º 2: uso de max() + comprensión de lista + segmentación de lista

La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, usamos max() para verificar si el elemento actual es mayor que todos los elementos anteriores extraídos mediante el corte de listas.

Python3

# Python3 code to demonstrate working of
# Elements Maximum till current index in List
# Using max() + list comprehension + list slicing
  
# initializing list
test_list = [3, 5, 2, 6, 7, 9, 3]
  
# printing original list
print("The original list : " + str(test_list))
  
# Using max() + list comprehension + list slicing
# max() used to get if current is current maximum
res = [test_list[idx] for idx in range(
    1, len(test_list)) if test_list[idx] > max(test_list[:idx])]
  
# printing result
print("Extracted Maximum elements : " + str(res))
Producción

The original list : [3, 5, 2, 6, 7, 9, 3]
Extracted Maximum elements : [5, 6, 7, 9]


Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *