Hey! If you love Python and building Python apps as much as I do, let's connect on Twitter or LinkedIn. I talk about this stuff all the time!

Sorting in Python Lists

Learn how to sort lists in Python with ease, using various sorting algorithms and techniques.| …


Updated July 10, 2023

|Learn how to sort lists in Python with ease, using various sorting algorithms and techniques.|

Definition of Concept

What is Sorting in Python Lists?

Sorting is a fundamental operation in programming that involves arranging elements of a list or collection in a specific order, such as alphabetical, numerical, or chronological. In Python, sorting lists is an essential skill for any programmer.

Step-by-Step Explanation

Sorting Lists with the Built-in sort() Method

The most straightforward way to sort a list in Python is by using the built-in sort() method.

# Create a sample list of strings
my_list = ["banana", "apple", "cherry", "date"]

# Sort the list in alphabetical order
my_list.sort()

print(my_list)  # Output: ['apple', 'banana', 'cherry', 'date']

Explanation:

  • The sort() method takes no arguments and sorts the elements of the list in-place.
  • By default, it sorts the list in ascending alphabetical order.

Sorting Lists with the Built-in sorted() Function

While sort() is used to sort lists in-place, the sorted() function returns a new sorted list without modifying the original.

# Create a sample list of integers
my_list = [5, 2, 8, 1]

# Sort the list in ascending order using sorted()
sorted_my_list = sorted(my_list)

print(sorted_my_list)  # Output: [1, 2, 5, 8]

Explanation:

  • The sorted() function takes an iterable (like a list or tuple) as input and returns a new sorted list.
  • You can specify the sorting order using the reverse parameter.

Sorting Lists in Descending Order

To sort lists in descending order, use the reverse=True argument with the sort() method or sorted() function.

# Create a sample list of strings
my_list = ["apple", "banana", "cherry"]

# Sort the list in alphabetical order and then reverse it
my_list.sort(reverse=True)

print(my_list)  # Output: ['banana', 'cherry', 'apple']

Explanation:

  • Set reverse=True to sort the list in descending alphabetical order.
  • You can also use this technique with the sorted() function.

Sorting Lists Using Custom Key Functions

In some cases, you might need to sort lists based on a specific attribute or key. This is where custom key functions come into play.

# Create a sample list of dictionaries
my_list = [
    {"name": "John", "age": 25},
    {"name": "Alice", "age": 30},
    {"name": "Bob", "age": 20}
]

# Sort the list by age using a custom key function
sorted_my_list = sorted(my_list, key=lambda x: x["age"])

print(sorted_my_list)
# Output:
# [
#     {'name': 'Bob', 'age': 20},
#     {'name': 'John', 'age': 25},
#     {'name': 'Alice', 'age': 30}
# ]

Explanation:

  • Use the key argument with a lambda function to specify the sorting key.
  • In this example, we’re sorting the list of dictionaries by the “age” attribute.

Conclusion

Sorting lists in Python is an essential skill that you should master. By using the built-in sort() method and sorted() function, you can sort lists quickly and efficiently. Remember to customize your sorting approach as needed, whether it’s for alphabetical, numerical, or chronological ordering. With practice and patience, you’ll become proficient in sorting lists like a pro!

Stay up to date on the latest in Python, AI, and Data Science

Intuit Mailchimp