The sort operation is applied to a list of data in any programming language. Tuple, list, and dictionary are used in Python to store multiple data. The values of the tuple and list are accessed by numeric index, and the keys access the values of the dictionary. Many built-in functions exist in Python to sort the list of data in ascending or descending order. The lambda function is one of them. The coder can define the sorting order based on the requirement by using this function. The uses of the lambda function for sorting the list and dictionary objects in different ways have been explained in this tutorial.

Example-1: Sort a list of numerical string data

Create a python file with the following script to sort a list of string data using lambda that contains all number values. A list of 6 items has been defined in the script. Here, lambda has used inside the sorted() function to sort the list. The list variable has been given as the first argument value, the lambda has been set as the key value, and the starting position of the sort has been set in the third argument. Next, the print() function has used to print the sorted list with space.

# Declare a list of string with number values


n_list = [’11’, ’50’, ‘5’, ‘1’, ’37’, ’19’]

# Sort the list using lambda and sorted function


sorted_list = sorted(n_list, key=lambda x: int(x[0:]))

# Print the sorted list

print(“The list of the sorted values are:”)

for value in sorted_list:


    print(value, end=‘ ‘)

Output:

The following output will appear after executing the above script.

<img alt="" data-lazy- data-lazy-src="https://kirelos.com/wp-content/uploads/2021/07/echo/1-16.png" data-lazy- height="426" src="data:image/svg xml,” width=”929″>

Example-2: Sort a list of tuples

Create a python file with the following script to sort a list of three tuples using lambda, where each tuple contains three items. Three types of sorting have been shown in the script. The sorting position is set to 0 in the first sorted function. This will sort the list based on the first item of each tuple. The sorting position is set to 1 in the second sorted function. This will sort the list based on the second item of each tuple. The sorting position is set to 2 in the third sorted function. This will sort the list based on the third item of each tuple.

# Declare a list of tuples


tuple_list = [(“HTML”, 15, ‘M01’), (“JavaScript”, 10, ‘M03’), (“Bootstrap”, 5, ‘M02’)]

# Sort the list based on the first item of the tuple


sorted_list1 = sorted(tuple_list, key=lambda x: x[0])

# Print the first sorted list

print(“The sorted list based on the first item:n, sorted_list1)

# Sort the list based on the second item of the tuple


sorted_list2 = sorted(tuple_list, key=lambda x: x[1])

# Print the second sorted list

print(“The sorted list based on the second item:n, sorted_list2)

# Sort the list based on the third item of the tuple


sorted_list3 = sorted(tuple_list, key=lambda x: x[2])

# Print the third sorted list

print(“The sorted list based on the third item:n, sorted_list3)

Output:

The following output will appear after executing the above script. Three sorted lists of the tuples have shown in the output based on the sorted position.

<img alt="" data-lazy- data-lazy-src="https://kirelos.com/wp-content/uploads/2021/07/echo/2-15.png" data-lazy- height="523" src="data:image/svg xml,” width=”924″>

Example-3: Sort a list containing another list

Create a python file with the following script to sort the nested list using lambda. An empty list has been declared to store the values of the sorted list. Here, the nested ‘for’ loops have used to sort the items of the nested list. The outer ‘for’ loop will iterate based on the number of inner lists defined in the main list. According to the script, three inner lists as defined in the main list where the first inner list has three items, the second inner list has two items and the third inner list has four items. The inner ‘for’ loop will iterate based on the items of each inner list. The sorted() function has called with the lambda inside the inner loop to sort the nested list.

# Declare the nested list


nested_list = [[‘Mango’, ‘Banana’, ‘Orange’], [‘Rose’, ‘Lily’], [‘Lion’, ‘Monkey’, ‘Tiger’, ‘Deer’]]

# Declare an empty list


sorted_data = []

# Loop to iterate the outer list

for i in range(len(nested_list)):


   # Loop to iterate the inner list


   for j in range(len(nested_list [i])):


      # Sort the inner list


      sorted_list = sorted(nested_list [i], key=lambda x: x[0])


   # Append the sorted list


   sorted_data.append(sorted_list)

# Print the sorted nested list

print(“The list after sorting:n {}”.format(sorted_data))

Output:

The following output will appear after executing the above script. The list of three sorted lists has shown in the output.

<img alt="" data-lazy- data-lazy-src="https://kirelos.com/wp-content/uploads/2021/07/echo/3-15.png" data-lazy- height="468" src="data:image/svg xml,” width=”927″>

Example-4: Sort a list of dictionaries

Create a python file with the following script to sort a list of dictionaries using lambda. Each dictionary contains three key-value pairs inside the list. Four types of sorting have been shown in the script. The first output will show the sorting based on the code key. The second output will show the sorting based on the name key. The third output will show the sorting based on the code and name keys. The fourth output will show the sorting in descending order based on the name key.

# Declare the list of dictionary


dic_list = [{“code”: “CSE-401”, “name”: “Multimedia”, “Credit”: 2.0},


            {“code”: “CSE-101”, “name”: “Computer Fundamental”, “Credit”: 1.5},


            {“code”: “CSE-305”, “name”: “Unix Programming”, “Credit”: 3.0}]

# Print the sorted dictionary based on code

print(“Sorting based on the code:n, sorted(dic_list, key=lambda i: i[‘code’]))

# Print the sorted dictionary based on name

print(“Sorting based on the name:n, sorted(dic_list, key=lambda i: (i[‘name’])))

# Print the sorted dictionary based on code and name

print(“Sorting based on the code and name:n, sorted(dic_list, key=lambda i: (i[‘code’], i[‘name’])))

# Print the sorted dictionary in descending based on name

print(“Sorting in descending order based on the name:n, sorted(dic_list, key=lambda i: i[‘name’], reverse=True))

Output:

The following output will appear after executing the above script.

<img alt="" data-lazy- data-lazy-src="https://kirelos.com/wp-content/uploads/2021/07/echo/4-15.png" data-lazy- height="571" src="data:image/svg xml,” width=”926″>

Conclusion:

The uses of lambda for sorting four different lists have shown in this tutorial by using simple examples that will help the python users to understand the purpose of using lambda in sorting.

About the author

<img alt="" data-del="avatar" data-lazy-src="https://kirelos.com/wp-content/uploads/2021/07/echo/channel-logo-150×150.jpg60ef081c6b4c3.jpg" height="112" src="data:image/svg xml,” width=”112″>

Fahmida Yesmin

I am a trainer of web programming courses. I like to write article or tutorial on various IT topics. I have a YouTube channel where many types of tutorials based on Ubuntu, Windows, Word, Excel, WordPress, Magento, Laravel etc. are published: Tutorials4u Help.