Dado Matrix, el siguiente programa muestra cómo ordenar las filas de una array por el conteo de presencia de números de una lista específica.
Entrada : test_list = [[4, 5, 1, 7], [6, 5], [9, 8, 2], [7, 1]], cus_list = [4, 5, 7]
Salida : [[9 , 8, 2], [6, 5], [7, 1], [4, 5, 1, 7]]
Explicación : 0 < 1 = 1 < 3 es el orden de recuento de elementos personalizados.
Entrada : test_list = [[4, 5, 1, 7], [6, 5], [7, 1]], cus_list = [4, 5, 7]
Salida : [[6, 5], [7, 1 ], [4, 5, 1, 7]]
Explicación : 1 = 1 < 3 es el orden de recuento de elementos personalizados.
En esto, realizamos una ordenación en el lugar usando sort(), y verificamos todos los elementos y aumentamos el contador en los casos de presencia de elementos de la lista personalizada, len() devuelve la longitud para obtener la cuenta.
Python3
# sorting util. def get_count(sub): return len([ele for ele in sub if ele in cus_list]) # initializing list test_list = [[4, 5, 1, 7], [6, 5], [9, 8, 2], [7, 1]] # printing original list print("The original list is : " + str(test_list)) # initializing custom list cus_list = [4, 5, 7] # performing inplace sort test_list.sort(key=get_count) # printing result print("Sorted Matrix : " + str(test_list))
Producción:
La lista original es: [[4, 5, 1, 7], [6, 5], [9, 8, 2], [7, 1]]
Array ordenada: [[9, 8, 2], [6, 5], [7, 1], [4, 5, 1, 7]]
Método 2: Usar sorted() , lambda y len()
Otra forma de resolver este problema es realizar la tarea de ordenar usando sorted() y la función lambda ofrece una lógica de instrucción sin llamar a una función externa.
Python3
# initializing list test_list = [[4, 5, 1, 7], [6, 5], [9, 8, 2], [7, 1]] # printing original list print("The original list is : " + str(test_list)) # initializing custom list cus_list = [4, 5, 7] # performing sort using sorted() res = sorted(test_list, key=lambda sub: len( [ele for ele in sub if ele in cus_list])) # printing result print("Sorted Matrix : " + str(res))
Producción:
La lista original es: [[4, 5, 1, 7], [6, 5], [9, 8, 2], [7, 1]]
Array ordenada: [[9, 8, 2], [6, 5], [7, 1], [4, 5, 1, 7]]
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