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()
+ lambdasort()
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