Python | Ordenar una lista según el segundo elemento en la sublista

En este artículo, aprenderemos a ordenar cualquier lista, de acuerdo con el segundo elemento de la sublista presente dentro de la lista principal. Veremos dos métodos para hacer esto. Aprenderemos tres métodos para realizar este tipo. Uno mediante el uso de Bubble Sort, segundo mediante el uso del método sort() y, por último, pero no menos importante, mediante el uso del método sorted(). En este programa, hemos ordenado la lista en orden ascendente.
Ejemplos:

Input : [['rishav', 10], ['akash', 5], ['ram', 20], ['gaurav', 15]]
Output : [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]

Input : [['452', 10], ['256', 5], ['100', 20], ['135', 15]]
Output : [['256', 5], ['452', 10], ['135', 15], ['100', 20]]

Método 1: Uso de la técnica Bubble Sort
Aquí hemos utilizado la técnica Bubble Sort para realizar la clasificación. Hemos intentado acceder al segundo elemento de las sublistas utilizando los bucles anidados. Esto realiza el método de clasificación en el lugar. La complejidad del tiempo es similar a Bubble Sort, es decir, O (n ^ 2)

# Python code to sort the lists using the second element of sublists
# Inplace way to sort, use of third variable
def Sort(sub_li):
    l = len(sub_li)
    for i in range(0, l):
        for j in range(0, l-i-1):
            if (sub_li[j][1] > sub_li[j + 1][1]):
                tempo = sub_li[j]
                sub_li[j]= sub_li[j + 1]
                sub_li[j + 1]= tempo
    return sub_li
  
# Driver Code
sub_li =[['rishav', 10], ['akash', 5], ['ram', 20], ['gaurav', 15]]
print(Sort(sub_li))

Producción:

[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]

Método 2: Clasificación mediante el uso del método sort()
Al clasificar mediante este método, se cambia el contenido real de la tupla y, al igual que con el método anterior, se realiza el método de clasificación in situ.

# Python code to sort the tuples using second element 
# of sublist Inplace way to sort using sort()
def Sort(sub_li):
  
    # reverse = None (Sorts in Ascending order)
    # key is set to sort using second element of 
    # sublist lambda has been used
    sub_li.sort(key = lambda x: x[1])
    return sub_li
  
# Driver Code
sub_li =[['rishav', 10], ['akash', 5], ['ram', 20], ['gaurav', 15]]
print(Sort(sub_li))

Producción:

[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]

Método 3: Ordenación mediante el uso del método sorted()
Sorted() ordena una lista y siempre devuelve una lista con los elementos ordenados, sin modificar la secuencia original. Toma tres parámetros de los cuales dos son opcionales, aquí tratamos de usar los tres:

  1. Iterable: secuencia (lista, tupla, string) o colección (diccionario, conjunto, conjunto congelado) o cualquier otro iterador que deba ordenarse.
  2. Clave (opcional): una función que serviría como clave o base de comparación de clasificación.
  3. Inversa (opcional): para ordenar esto en orden ascendente, podríamos haber ignorado el tercer parámetro, lo que hicimos en este programa. Si se establece en verdadero, entonces el iterable se ordenará en orden inverso (descendente), por defecto se establece como falso.
# Python code to sort the tuples using second element 
# of sublist Function to sort using sorted()
def Sort(sub_li):
  
    # reverse = None (Sorts in Ascending order)
    # key is set to sort using second element of 
    # sublist lambda has been used
    return(sorted(sub_li, key = lambda x: x[1]))    
  
# Driver Code
sub_li =[['rishav', 10], ['akash', 5], ['ram', 20], ['gaurav', 15]]
print(Sort(sub_li))

Producción:

[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]

Publicación traducida automáticamente

Artículo escrito por Chinmoy Lenka 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 *