Python | Ordenar lista según otro orden de lista

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))
Producción: 

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))
Producción: 

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *