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))
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))
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