Python – K elementos máximos con índice en la lista

Dada una Lista, extraer K Máximo de elementos con sus índices.

Entrada : test_list = [5, 3, 1, 4, 7, 8, 2], K = 2
Salida : [(4, 7), (5, 8)]
Explicación : 8 es el máximo en el índice 5, 7 en el cuarto .

Entrada : test_list = [5, 3, 1, 4, 7, 10, 2], K = 1
Salida : [(5, 10)]
Explicación : 10 es el máximo en el índice 5.

Método #1: Usar sorted() + index()

La combinación de las funciones anteriores proporciona una forma de encontrar una solución a este problema. En esto, inicialmente ordenamos y extraemos K elementos máximos, luego se encapsulan en tupla con su orden en la lista original.

Python3

# Python3 code to demonstrate working of 
# K Maximum elements with Index in List
# Using sorted() + index()
  
# initializing list
test_list = [5, 3, 1, 4, 7, 8, 2]
  
# printing original list 
print("The original list : " + str(test_list))
  
# initializing K
K = 3
  
# Using sorted() + index()
# using sorted() to sort and slice K maximum elements 
temp = sorted(test_list)[-K:]
res = []
for ele in temp:
      
    # encapsulating elements with index using index()
    res.append((test_list.index(ele), ele))
  
# printing result 
print("K Maximum with indices : " + str(res))
Producción

The original list : [5, 3, 1, 4, 7, 8, 2]
K Maximum with indices : [(0, 5), (4, 7), (5, 8)]

Método #2: Usar enumerate() + itemgetter()

La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, realizamos la tarea de obtener índices usando enumerate() y itemgetter() se usa para obtener los elementos. 

Python3

# Python3 code to demonstrate working of
# K Maximum elements with Index in List
# Using enumerate() + itemgetter()
from operator import itemgetter
  
# initializing list
test_list = [5, 3, 1, 4, 7, 8, 2]
  
# printing original list
print("The original list : " + str(test_list))
  
# initializing K
K = 3
  
# Using enumerate() + itemgetter()
# Making index values pairs at 1st stage
res = list(sorted(enumerate(test_list), key = itemgetter(1)))[-K:]
  
# printing result
print("K Maximum with indices : " + str(res))
Producción

The original list : [5, 3, 1, 4, 7, 8, 2]
K Maximum with indices : [(0, 5), (4, 7), (5, 8)]

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 *