Python | Clasificación de integridad en dos listas

A menudo, durante la resolución de problemas, nos encontramos con muchos problemas en los que necesitamos ordenar la lista. Pero a veces también querríamos ordenar la otra lista para que los elementos de se desplacen automáticamente y permanezcan en el mismo índice que la primera lista, incluso después de ordenar la primera lista. Vamos a discutir ciertas formas en que esto se puede hacer.

Método n. ° 1: Usandosorted() + zip() + itemgetter()
la combinación de las tres funciones, posiblemente podamos lograr la tarea. Las funciones zip unen las dos listas, la función sorted ordena la lista y la función itemgetter se usa para definir las métricas contra las que necesitamos cambiar la segunda lista, en este caso la primera lista.

# Python3 code to demonstrate 
# integrity sorting in two list 
# using sorted() + zip() + itemgetter()
from operator import itemgetter
  
# initializing lists
test_list1 = [3, 4, 9, 1, 6]
test_list2 = [1, 5, 3, 6, 7]
  
# printing original lists
print ("The original list 1 is : " + str(test_list1))
print ("The original list 2 is : " + str(test_list2))
  
# using sorted() + zip() + itemgetter()
# integrity sorting in two list 
res = [list(x) for x in zip(*sorted(zip(test_list1, test_list2),
                                         key = itemgetter(0)))]
  
# printing result 
print ("The lists after integrity sort : " +  str(res))
Producción:

The original list 1 is : [3, 4, 9, 1, 6]
The original list 2 is : [1, 5, 3, 6, 7]
The lists after integrity sort : [[1, 3, 4, 6, 9], [6, 1, 5, 7, 3]]

 
Método n.º 2: el uso desorted() + zip() + lambda function
este método realiza la tarea similar, cada función realiza la función similar, la diferencia es solo que en lugar de la función itemgetter, la función lambda realiza la tarea de asignar una base para ordenar la lista, es decir, la primera lista en este caso .

# Python3 code to demonstrate 
# integrity sorting in two list 
# using sorted() + zip() + lambda function
from operator import itemgetter
  
# initializing lists
test_list1 = [3, 4, 9, 1, 6]
test_list2 = [1, 5, 3, 6, 7]
  
# printing original lists
print ("The original list 1 is : " + str(test_list1))
print ("The original list 2 is : " + str(test_list2))
  
# using sorted() + zip() + lambda function
# integrity sorting in two list 
res = [list(i) for i in zip(*sorted(zip(test_list1, test_list2),
                                  key = lambda dual: dual[0]))]
  
# printing result 
print ("The lists after integrity sort : " +  str(res))
Producción:

The original list 1 is : [3, 4, 9, 1, 6]
The original list 2 is : [1, 5, 3, 6, 7]
The lists after integrity sort : [[1, 3, 4, 6, 9], [6, 1, 5, 7, 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

Deja una respuesta

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