Python | Ordenar lista de lista por índice especificado

Podemos ordenar lista de lista usando la función de ordenación convencional. Esto ordena la lista por el primer índice de listas. Pero más a menudo puede haber circunstancias que requieran la clasificación de lista de lista por otros elementos de índice además del primero. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: se puede usar sort()+ lambda
sort() para realizar esta variación de clasificación al pasar una función como clave que realiza la clasificación de acuerdo con el índice de la lista interna deseada.

# Python 3 code to demonstrate 
# to sort list of list by given index 
# using sort() + lambda
  
  
# initializing list 
test_list = [['Rash', 4, 28], ['Varsha', 2, 20], ['Nikhil', 1, 20], ['Akshat', 3, 21]]
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# using sort() + lambda
# to sort list of list 
# sort by second index
test_list.sort(key = lambda test_list: test_list[1])
  
# printing result
print ("List after sorting by 2nd element of lists : " + str(test_list))

Producción :

The original list is : [['Rash', 4, 28], ['Varsha', 2, 20], ['Nikhil', 1, 20], ['Akshat', 3, 21]]
List after sorting by 2nd element of lists : [['Nikhil', 1, 20], ['Varsha', 2, 20], ['Akshat', 3, 21], ['Rash', 4, 28]]

Método #2: Usarsorted() + itemgetter()
Esto también se puede aplicar para realizar esta tarea en particular. La ventaja que tiene es que no modifica la lista original. itemgetter()se utiliza para obtener el elemento de índice por el cual se debe realizar la operación de ordenación.

# Python3 code to demonstrate 
# to sort list of list by given index 
# using sorted() + itemgetter()
from operator import itemgetter
  
# initializing list 
test_list = [['Rash', 4, 28], ['Varsha', 2, 20], ['Nikhil', 1, 20], ['Akshat', 3, 21]]
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# using sort() + lambda
# to sort list of list 
# sort by second index
res = sorted(test_list, key = itemgetter(1))
  
# printing result
print ("List after sorting by 2nd element of lists : " + str(res))

Producción :

The original list is : [['Rash', 4, 28], ['Varsha', 2, 20], ['Nikhil', 1, 20], ['Akshat', 3, 21]]
List after sorting by 2nd element of lists : [['Nikhil', 1, 20], ['Varsha', 2, 20], ['Akshat', 3, 21], ['Rash', 4, 28]]

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 *