Python – Ordenar filas por Frecuencia de K

Dada una array, para realizar la clasificación en las filas en función de la frecuencia de K.

Entrada : lista_prueba = [[10, 2, 3, 2, 3], [5, 5, 4, 7, 7, 4], [1, 2], [1, 1, 2, 2, 2]], K = 2 
Salida : [[5, 5, 4, 7, 7, 4], [1, 2], [10, 2, 3, 2, 3], [1, 1, 2, 2, 2]] 
Explicación : 0 < 1 < 2 < 3, cuenta de K en el orden de Matrix.
 

Entrada : test_list = [[5, 5, 4, 7, 7, 4], [1, 2], [1, 1, 2, 2, 2]], K = 2 
Salida : [[5, 5, 4 , 7, 7, 4], [1, 2], [1, 1, 2, 2, 2]] 
Explicación : 0 < 1 < 3, recuento de K en el orden de Matrix. 

Método #1: Usar sort() + count()

En esto, realizamos la tarea de clasificación en el lugar usando sort() , la frecuencia de captura se realiza usando count()

Python3

# Python3 code to demonstrate working of
# Sort rows by Frequency of K
# Using sort() + count()
  
  
def get_Kfreq(row):
  
    # return Frequency
    return row.count(K)
  
  
# initializing list
test_list = [[10, 2, 3, 2, 3], [5, 5, 4, 7, 7, 4], [1, 2], [1, 1, 2, 2, 2]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 2
  
# performing inplace sort
test_list.sort(key=get_Kfreq)
  
# printing result
print("Sorted List : " + str(test_list))

Producción:

La lista original es: [[10, 2, 3, 2, 3], [5, 5, 4, 7, 7, 4], [1, 2], [1, 1, 2, 2, 2]]
Lista ordenada: [[5, 5, 4, 7, 7, 4], [1, 2], [10, 2, 3, 2, 3], [1, 1, 2, 2, 2]]

Método #2: Usar sorted() + lambda + count()

En esto, realizamos la tarea de ordenar usando sorted() y lambda , elimina la llamada a función externa y la función lambda utilizada para el cálculo.

Python3

# Python3 code to demonstrate working of
# Sort rows by Frequency of K
# Using sorted() + lambda + count()
  
# initializing list
test_list = [[10, 2, 3, 2, 3], [5, 5, 4, 7, 7, 4], [1, 2], [1, 1, 2, 2, 2]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 2
  
# performing inplace sort
res = sorted(test_list, key=lambda row: row.count(K))
  
# printing result
print("Sorted List : " + str(res))

Producción:

La lista original es: [[10, 2, 3, 2, 3], [5, 5, 4, 7, 7, 4], [1, 2], [1, 1, 2, 2, 2]]
Lista ordenada: [[5, 5, 4, 7, 7, 4], [1, 2], [10, 2, 3, 2, 3], [1, 1, 2, 2, 2]]

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 *