Dada una Array, ordene de acuerdo con la frecuencia de Ninguno de los elementos.
Entrada : test_list = [[Ninguno, Ninguno, 3, Ninguno], [12, 4, 5], [Ninguno, 3, 4]]
Salida : [[12, 4, 5], [Ninguno, 3, 4], [Ninguno, Ninguno, 3, Ninguno]]
Explicación : 0, 1, 3 recuentos de Ninguno respectivamente.Entrada : test_list = [[Ninguno, Ninguno, 3, Ninguno], [Ninguno, 3, 4]]
Salida : [[12, 4, 5], [Ninguno, Ninguno, 3, Ninguno]]
Explicación : 0, 3 recuentos de Ninguno respectivamente.
Método #1: Usar sort()
En esto, realizamos la ordenación usando sort(), y la tarea de extraer la frecuencia de los elementos Ninguno usando una función externa en cada fila. Esto realiza la clasificación en el lugar.
Python3
# Python3 code to demonstrate working of # Sort Matrix by None frequency # Using sort() # external sort function def get_None_freq(row): # getting length of None characters return len([ele for ele in row if not ele]) # initializing list test_list = [[None, None, 4], [None, None, 3, None], [12, 4, 5], [None, 3, 4]] # printing original list print("The original list is : " + str(test_list)) # sorting using sort() test_list.sort(key = get_None_freq) # printing result print("List after sorting : " + str(test_list))
Producción:
La lista original es: [[Ninguno, Ninguno, 4], [Ninguno, Ninguno, 3, Ninguno], [12, 4, 5], [Ninguno, 3, 4]]
Lista después de ordenar: [[12, 4, 5], [Ninguno, 3, 4], [Ninguno, Ninguno, 4], [Ninguno, Ninguno, 3, Ninguno]]
Método #2: Usar sorted() + lambda
En esto, en lugar de la función externa, se utiliza la función lambda para resolver este problema. sorted() se utiliza para realizar tareas de clasificación.
Python3
# Python3 code to demonstrate working of # Sort Matrix by None frequency # Using sorted() + lambda # initializing list test_list = [[None, None, 4], [None, None, 3, None], [12, 4, 5], [None, 3, 4]] # printing original list print("The original list is : " + str(test_list)) # sorting using sorted() # lambda function for None frequency logic res = sorted(test_list, key=lambda row: len([ele for ele in row if not ele])) # printing result print("List after sorting : " + str(res))
Producción:
La lista original es: [[Ninguno, Ninguno, 4], [Ninguno, Ninguno, 3, Ninguno], [12, 4, 5], [Ninguno, 3, 4]]
Lista después de ordenar: [[12, 4, 5], [Ninguno, 3, 4], [Ninguno, Ninguno, 4], [Ninguno, Ninguno, 3, Ninguno]]
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