La clasificación normal de tuplas se ha tratado anteriormente. Este artículo tiene como objetivo ordenar la lista dada de tuplas por el segundo elemento, según el orden proporcionado en alguna lista.
Método n.º 1: usar la comprensión de lista + filter()
+ lambda
Las tres funciones anteriores se pueden combinar para realizar la tarea particular en la que la comprensión de lista realiza la iteración, la función lambda se usa como función auxiliar para filtrar y ordenar según el segundo elemento de la tupla.
# Python3 code to demonstrate # sort list of tuples according to second # using list comprehension + filter() + lambda # initializing list of tuples test_list = [('a', 2), ('c', 3), ('d', 4)] # initializing sort order sort_order = [4, 2, 3] # printing the 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 + filter() + lambda # sort list of tuples according to second res = [i for j in sort_order for i in filter(lambda k: k[1] == j, test_list)] # printing result print ("The list after appropriate sorting : " + str(res))
The original list is : [('a', 2), ('c', 3), ('d', 4)] The sort order list is : [4, 2, 3] The list after appropriate sorting : [('d', 4), ('a', 2), ('c', 3)]
Método n.º 2: usar sorted() + index()
+ lambda
La función sorted se puede usar para ordenar según el orden especificado. La función de índice especifica que se debe tener en cuenta el segundo elemento de la tupla y que todos se unen con la ayuda de lambda.
# Python3 code to demonstrate # sort list of tuples according to second # using sorted() + index() + lambda # initializing list of tuples test_list = [('a', 2), ('c', 3), ('d', 4)] # initializing sort order sort_order = [4, 2, 3] # printing the original list print ("The original list is : " + str(test_list)) # printing sort order list print ("The sort order list is : " + str(sort_order)) # using sorted() + index() + lambda # sort list of tuples according to second res = list(sorted(test_list, key = lambda i: sort_order.index(i[1]))) # printing result print ("The list after appropriate sorting : " + str(res))
The original list is : [('a', 2), ('c', 3), ('d', 4)] The sort order list is : [4, 2, 3] The list after appropriate sorting : [('d', 4), ('a', 2), ('c', 3)]
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