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:
- 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.
- La lista se ordena según el orden natural de las claves.
- 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