La clasificación es una utilidad esencial utilizada en la mayoría de la programación, ya sea para programación o desarrollo competitivo. La clasificación convencional se ha tratado anteriormente muchas veces. Este artículo en particular trata sobre la clasificación con respecto a otros elementos de la lista.
Analicemos ciertas formas de ordenar la lista de acuerdo con otro orden de lista.
Método #1: Uso de la comprensión
de listas La comprensión de listas se puede utilizar para lograr esta tarea en particular. En esto, solo verificamos que cada elemento en la lista 2 coincida con la tupla actual y lo agregamos en consecuencia, de manera ordenada.
Python3
# Python3 code to demonstrate # to sort according to other list # using list comprehension # initializing list of tuples test_list = [ ('a', 1), ('b', 2), ('c', 3), ('d', 4)] # initializing sort order sort_order = ['d', 'c', 'a', 'b'] # printing original list print ("The original list is : " + str(test_list)) # printing sort order list print ("The sort order list is : " + str(sort_order)) # using list comprehension # to sort according to other list res = [tuple for x in sort_order for tuple in test_list if tuple[0] == x] # printing result print ("The sorted list is : " + str(res))
The original list is : [('a', 1), ('b', 2), ('c', 3), ('d', 4)] The sort order list is : ['d', 'c', 'a', 'b'] The sorted list is : [('d', 4), ('c', 3), ('a', 1), ('b', 2)]
Método n.º 2: Usar sort() + lambda + index()
La abreviatura para realizar esta operación en particular, la función de clasificación se puede usar junto con lambda con clave para especificar la ejecución de la función para cada par de tuplas, y el orden de lista de otra lista es mantenido usando la función de índice.
Python3
# Python code to demonstrate # to sort according to other list # using sort() + lambda + index() # initializing list of tuples test_list = [ ('a', 1), ('b', 2), ('c', 3), ('d', 4)] # initializing sort order sort_order = ['d', 'c', 'a', 'b'] # printing original list print ("The original list is : " + str(test_list)) # printing sort order list print ("The sort order list is : " + str(sort_order)) # using sort() + lambda + index() # to sort according to other list # test_list.sort(key = lambda(i, j): sort_order.index(i)) # works in python 2 test_list.sort(key = lambda i: sort_order.index(i[0])) # works in python 3 # printing result print ("The sorted list is : " + str(test_list))
The original list is : [('a', 1), ('b', 2), ('c', 3), ('d', 4)] The sort order list is : ['d', 'c', 'a', 'b'] The sorted list is : [('d', 4), ('c', 3), ('a', 1), ('b', 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