programa de Python para encontrar N más grandes y más pequeños elementos de la lista

Python heapq.nlargest () y () heapq.nsmallest funciones Ejemplos : Aquí, vamos a aprender cómo encontrar N más grandes y más pequeños elementos?

Aquí, se aprende a conocer el N más grande y más pequeños elementos de la lista? Cuando, lista y N propuesta por el usuario, N pueden ser cualquier valor, pero menos de la longitud de la lista.

Descripción:

Hay dos maneras,

1. definiendo una función:

Procedimiento:

  1. Definir el nombre de la función largest_ele y smallest_ele .
  2. pase de dos argumentos en una función (l, n) : l es la lista y n es el número de elementos.
  3. Ejecutar el bucle class n veces
  4. En el bucle de encontrar el máximo de la lista dada y añadirlo a otra lista
  5. Y después de anexar a otra lista de quitar el elemento máximo de la lista

Por el módulo incorporado heapq módulo

Si busca class la N artículos más pequeños o más grandes y N es pequeño comparado con el tamaño total de la colección, estas funciones proporcionan un rendimiento superior.

  1. class la heapq módulo
  2. dar la lista
  3. Ahora usa la función heapq.nlargest (n, l) y heapq.nsmallest (n, l) desde el módulo de encontrar el más grande y los números más pequeños.

código Python:

# N largest and smallest element in a list 
# by function and by the help of heapq module
#function to find n largest element
def largest_ele(l,n):
s=[]
for i in range(n):
s.append(max(l)) #append max of list in a new list
l.remove(max(l)) #remove max of list from the list
print('by largest_ele function: ',s)
#function to find n largest element
def smallest_ele(m,n):
t=[]
for i in range(n):
t.append(min(m))#append min of list in a new list
m.remove(min(m))#remove min of list from the list
print('by smallest_ele function: ',t)
l=[2,4,6,8,10]
m=[0,1,2,3,4,5,6]
n=2
largest_ele(l,n)
smallest_ele(m,n)
# using the inbuilt module function
# heapq.nlargest and heapq.nsmallest
import heapq
nums = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2]
print('BY heapq.nlargest: ',heapq.nlargest(3, nums)) # Prints [42, 37, 23]
print('BY heapq.nsmallest: ',heapq.nsmallest(3, nums)) # Prints [-4, 1, 2]

salida

by largest_ele function:  [10, 8]
by smallest_ele function: [0, 1]
BY heapq.nlargest: [42, 37, 23]
BY heapq.nsmallest: [-4, 1, 2]

Nota: El nlargest () y nsmallest () funciones son los más apropiados si usted está tratando de encontrar una relativamente pequeña número de items. Si simplemente está tratando de encontrar el single más pequeño o más grande elemento (N = 1), es más rápido que el uso min () y MAX ().


Deja un comentario

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