A veces, mientras trabajamos con datos, podemos tener un problema en el que tenemos registros y necesitamos encontrar las puntuaciones N más altas a partir de ellos. Este tipo de aplicación es popular en el dominio del desarrollo web. Analicemos ciertas formas en que se puede resolver este problema.
Método #1: Usar sorted()
+ lambda
La combinación de la funcionalidad anterior se puede usar para realizar esta tarea en particular. En esto, solo empleamos la función ordenada con el indicador inverso verdadero e imprimimos los N elementos principales usando el corte de lista.
# Python3 code to demonstrate working of # Get Top N elements from Records # Using sorted() + lambda # Initializing list test_list = [('Manjeet', 10), ('Akshat', 4), ('Akash', 2), ('Nikhil', 8)] # Initializing N N = 2 # printing original list print("The original list is : " + str(test_list)) # Get Top N elements from Records # Using sorted() + lambda res = sorted(test_list, key = lambda x: x[1], reverse = True)[:N] # printing result print("The top N records are : " + str(res))
The original list is : [('Manjeet', 10), ('Akshat', 4), ('Akash', 2), ('Nikhil', 8)] The top N records are : [('Manjeet', 10), ('Nikhil', 8)]
Method #2 : Using
sorted() + itemgetter()
La combinación de las funciones anteriores también se puede utilizar para realizar esta tarea en particular. En esto, la tarea realizada por la función lambda se utiliza itemgetter()
para obtener el índice en tupla que debe incluirse en los cálculos.
# Python3 code to demonstrate working of # Get Top N elements from Records # Using sorted() + itemgetter() from operator import itemgetter # Initializing list test_list = [('Manjeet', 10), ('Akshat', 4), ('Akash', 2), ('Nikhil', 8)] # Initializing N N = 2 # printing original list print("The original list is : " + str(test_list)) # Get Top N elements from Records # Using sorted() + itemgetter() res = sorted(test_list, key = itemgetter(1), reverse = True)[:N] # printing result print("The top N records are : " + str(res))
The original list is : [('Manjeet', 10), ('Akshat', 4), ('Akash', 2), ('Nikhil', 8)] The top N records are : [('Manjeet', 10), ('Nikhil', 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