Python | Ordenar una lista según la longitud de los elementos

En este programa, necesitamos aceptar una lista y ordenarla según la longitud de los elementos presentes en ella.
Ejemplos:

Input : list = ["rohan", "amy", "sapna", "muhammad",
                "aakash", "raunak", "chinmoy"]
Output : ['amy', 'rohan', 'sapna', 'aakash', 'raunak', 
         'chinmoy', 'muhammad']

Input : list = [["ram", "mohan", "aman"], ["gaurav"], 
                 ["amy", "sima", "ankita", "rinku"]]
Output : [['gaurav'], ['ram', 'mohan', 'aman'], 
          ['amy', 'sima', 'ankita', 'rinku']]

Note: The first example comprises of Strings whose 
length can be calculated. The second example comprises 
of sublists, which is also arranged according to there 
length. 

Hay muchas maneras de realizar esto. Cualquiera puede usar su propia técnica algorítmica, pero Python nos proporciona varias funciones integradas para realizarlas. Las funciones integradas incluyen sort() y sorted() junto con el parámetro clave. Podemos realizarlos de dos maneras. Una forma es ordenar la lista creando una nueva lista y otra forma es ordenar dentro de la lista dada, ahorrando espacio.

La sintaxis para ordenar creando una nueva lista es:

sorted_list = sorted(unsorted_list, key=len)
# Python code to sort a list by creating 
# another list Use of sorted()
def Sorting(lst):
    lst2 = sorted(lst, key=len)
    return lst2
      
# Driver code
lst = ["rohan", "amy", "sapna", "muhammad", 
       "aakash", "raunak", "chinmoy"]
print(Sorting(lst))

La sintaxis para ordenar sin crear una nueva lista es:

unsorted_list.sort(key=len)
# Python code to sort a list without 
# creating another list Use of sort()
def Sorting(lst):
    lst.sort(key=len)
    return lst
      
# Driver code
lst = ["rohan", "amy", "sapna", "muhammad", 
       "aakash", "raunak", "chinmoy"]
print(Sorting(lst))

Producción:

['amy', 'rohan', 'sapna', 'aakash', 'raunak', 'chinmoy', 'muhammad']

Trabajo:
esta función clave de Python mientras se implementa la clasificación se conoce como el patrón de diseño decorar-clasificar-desdecorar . Sigue los siguientes pasos:

  1. Cada elemento de la lista se reemplaza temporalmente con una versión «decorada» que incluye el resultado de la función clave aplicada al elemento.
  2. La lista se ordena según el orden natural de las claves.
  3. Los elementos decorados se sustituyen por los elementos originales.

El código para ordenar creando una nueva lista ficticia es:

import numpy
  
def Sorting(lst):
  
    # list for storing the length of each string in list 
    lenlist=[]   
    for x in lst:
         lenlist.append(len(x))     
  
    # return a list with the index of the sorted
    # items in the list
    sortedindex = numpy.argsort(lenlist)  
  
    # creating a dummy list where we will place the 
    # word according to the sortedindex list 
    lst2 = ['dummy']*len(lst)   
  
    # print(sortedindex,lenlist)
    for i in range(len(lst)):    
  
        # placing element in the lst2 list by taking the
        # value from original list lst where it should belong 
        # in the sorted list by taking its index from sortedindex
        lst2[i] = lst[sortedindex[i]]     
                                          
    return lst2
      
# Driver code
lst = ["rohan", "amy", "sapna", "muhammad", 
       "aakash", "raunak", "chinmoy"]
print(Sorting(lst))

Producción:

['amy', 'rohan', 'sapna', 'aakash', 'raunak', 'chinmoy', 'muhammad']


Referencia:
stackoverflow

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 *