Python: encuentre la frecuencia de números mayores que cada elemento en una lista

Dada una lista, se construye una nueva lista que tiene una frecuencia de elementos mayor o igual a ella, correspondiente a cada elemento de la lista.

Entrada : test_list = [6, 3, 7, 1, 2, 4] 
Salida : [2, 4, 1, 6, 5, 3] 
Explicación : 6, 7 son mayores o iguales que 6 en la lista, por lo tanto, 2.
Entrada : test_list = [6, 3, 7] 
Salida : [2, 3, 1] 
Explicación : 6, 7 son mayores o iguales que 6 en la lista, por lo tanto, 2. 

Método 1: Usar sum() y comprensión de listas

Aquí, la comprensión de listas anidadas se usa para acceder a cada elemento de la lista y sum() se usa para obtener la suma de los elementos que son mayores o iguales que el elemento indexado. 

Python3

# initializing list
test_list = [6, 3, 7, 1, 2, 4]
  
# printing original list
print("The original list is : " + str(test_list))
  
# sum() performs counts of element which are Greater or equal to 
res = [sum(1 for ele in test_list if sub <= ele) for sub in test_list] 
      
# printing result 
print("Greater elements Frequency list : " + str(res))

 
 Producción:

La lista original es: [6, 3, 7, 1, 2, 4]

Elementos mayores Lista de frecuencias: [2, 4, 1, 6, 5, 3]

Método 2: Usar sorted() , bisect_left() y comprensión de listas

En esto, obtenemos elementos más pequeños que el elemento usando bisect_left(). Luego, restando el número así obtenido de la longitud total nos da la cuenta de elementos mayores que el elemento.
 

Python3

# import module
import bisect
  
# initializing list
test_list = [6, 3, 7, 1, 2, 4]
  
# printing original list
print("The original list is : " + str(test_list))
  
# sorting before bisect 
temp = sorted(test_list)
  
# getting total greater elements for each element
res = [len(test_list) - bisect.bisect_left(temp, ele) for ele in test_list]
      
# printing result 
print("Greater elements Frequency list : " + str(res))

Producción:

La lista original es: [6, 3, 7, 1, 2, 4]

Elementos mayores Lista de frecuencias: [2, 4, 1, 6, 5, 3]

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 *