A veces, mientras trabajamos con datos, podemos tener un problema en el que necesitamos obtener el máximo de elementos filtrados por el K-ésimo elemento de registro. Esto tiene una utilidad muy importante en el dominio del desarrollo web. Analicemos ciertas formas en que se puede realizar esta tarea.
Método #1: Usar filter() + lambda + set()
+ comprensión de lista
La combinación de las funciones anteriores se puede utilizar para realizar esta función en particular. En esto, primero filtramos los N elementos principales del índice Kth y luego aplicamos estos valores a la lista y devolvemos el resultado.
# Python3 code to demonstrate working of # Top N pairs by Kth element from list # Using filter() + lambda + set() + list comprehension # initialize list test_list = [('gfg', 4, 'good'), ('gfg', 2, 'better'), ('gfg', 1, 'best'), ('gfg', 3, 'geeks')] # printing original list print("The original list is : " + str(test_list)) # initialize N N = 3 # initialize K K = 1 # Top N pairs by Kth element from list # Using filter() + lambda + set() + list comprehension temp = set(list({sub[K] for sub in test_list})[-N:]) res = list(filter(lambda sub: sub[K] in temp, test_list)) # printing result print("Top N elements of Kth index are : " + str(res))
La lista original es: [(‘gfg’, 4, ‘bueno’), (‘gfg’, 2, ‘mejor’), (‘gfg’, 1, ‘mejor’), (‘gfg’, 3, ‘ geeks’)]
Los N elementos principales del índice Kth son: [(‘gfg’, 4, ‘good’), (‘gfg’, 2, ‘better’), (‘gfg’, 3, ‘geeks’)]
Método #2: Usar groupby() + sorted()
+ bucle
Esta tarea también se puede realizar utilizando las funcionalidades anteriores. En esto, primero agrupamos los N elementos principales y luego limitamos por N mientras construimos la lista de resultados.
# Python3 code to demonstrate working of # Top N pairs by Kth element from list # Using groupby() + sorted() + loop import itertools # initialize list test_list = [('gfg', 4, 'good'), ('gfg', 2, 'better'), ('gfg', 1, 'best'), ('gfg', 3, 'geeks')] # printing original list print("The original list is : " + str(test_list)) # initialize N N = 3 # initialize K K = 1 # Top N pairs by Kth element from list # Using groupby() + sorted() + loop res = [] temp = itertools.groupby(sorted(test_list, key = lambda sub : sub[K], reverse = True), key = lambda sub : sub[K]) for i in range(N): res.extend(list(next(temp)[K])) # printing result print("Top N elements of Kth index are : " + str(res))
La lista original es: [(‘gfg’, 4, ‘bueno’), (‘gfg’, 2, ‘mejor’), (‘gfg’, 1, ‘mejor’), (‘gfg’, 3, ‘ geeks’)]
Los N elementos principales del índice Kth son: [(‘gfg’, 4, ‘good’), (‘gfg’, 2, ‘better’), (‘gfg’, 3, ‘geeks’)]
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