Python | Sort a List according to the Length of the Elements

In this program, we need to accept a list and sort it based on the length of the elements present within.
Examples:

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. 

There are many ways of performing this. Anyone can use there own algorithmic technique, but Python provides us with various built-in functions to perform these. The built-in functions include sort() and sorted() along with the key parameter. We can perform these in two ways. One way is to sort the list by creating a new list and another way is to sort within the given list, saving space.

The syntax for sorting by creating a new list is:



sorted_list = sorted(unsorted_list, key=len)
filter_none

edit
close

play_arrow

link
brightness_4
code

# 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))

chevron_right


The syntax for sorting without creating a new list is:

unsorted_list.sort(key=len)
filter_none

edit
close

play_arrow

link
brightness_4
code

# 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))

chevron_right


Output:

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

Working:
These key function of Python’s while sorting implemented is known as the decorate-sort-undecorate design pattern. It follows the following steps:

  1. Each element of the list is temporarily replaced with a “decorated” version that includes the result of the key function applied to the element.
  2. The list is sorted based upon the natural order of the keys.
  3. The decorated elements are replaced by the original elements.


Reference:
stackoverflow



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.