Python | Ordenar lista de listas por valor lexicográfico y luego por longitud

Hay muchas veces que se han discutido diferentes tipos de clasificación en las listas de python. También se ha discutido la clasificación de la lista de listas de python. Pero a veces, tenemos dos parámetros sobre los que debemos ordenar. El primero es la suma de la lista y el siguiente es su longitud . Analicemos cómo se puede resolver este tipo de problema.

Método #1: Usar sort()dos veces
El primer enfoque que viene a la mente es la forma genérica de usar la función de clasificación dos veces, primero en función del valor y luego en función del tamaño de la lista.

# Python code to demonstrate
# sort list of lists by value and length
# using sort() twice 
  
# initializing list 
test_list = [[1, 4, 3, 2], [5, 4, 1], [1, 4, 6, 7]]
  
# printing the original list
print ("The original list is : " + str(test_list))
  
# using sort() twice 
# sort list of lists by value and length
test_list.sort()
test_list.sort(key = len)
  
# printing result
print ("The list after sorting by value and length " + str(test_list))
Producción:

La lista original es: [[1, 4, 3, 2], [5, 4, 1], [1, 4, 6, 7]]
La lista después de ordenar por valor y longitud [[5, 4, 1] , [1, 4, 3, 2], [1, 4, 6, 7]]

 
Método n.º 2: Uso de la función lambda
El método anterior llama a una sola función de clasificación dos veces, pero como mejora, este método llama a la función de clasificación solo una vez y usa la función lambda para realizar ambas clasificaciones a la vez.

# Python code to demonstrate
# sort list of lists by value and length
# using lambda function
  
# initializing list 
test_list = [[1, 4, 3, 2], [5, 4, 1], [1, 4, 6, 7]]
  
# printing the original list
print ("The original list is : " + str(test_list))
  
# using lambda function 
# sort list of lists by value and length
res = sorted(test_list, key = lambda i: (len(i), i))
  
# printing result
print ("The list after sorting by value and length " + str(res))
Producción:

La lista original es: [[1, 4, 3, 2], [5, 4, 1], [1, 4, 6, 7]]
La lista después de ordenar por valor y longitud [[5, 4, 1] , [1, 4, 3, 2], [1, 4, 6, 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

Deja una respuesta

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