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!

How to Sort a List Alphabetically in Python

Learn how to sort a list of strings alphabetically in Python using the built-in sort() and sorted() functions. …


Updated July 13, 2023

Learn how to sort a list of strings alphabetically in Python using the built-in sort() and sorted() functions.

Sorting lists is an essential operation in programming, and Python provides two primary ways to do this: the sort() method for modifying lists in-place and the sorted() function for creating new sorted lists. In this article, we will focus on how to sort a list alphabetically using both methods.

Definition of the Concept

Sorting a list means arranging its elements in ascending or descending order based on some criteria, such as string values (alphabetical order), numerical values (ascending or descending order), and more complex conditions like dates. Python’s built-in sort() method and the sorted() function enable us to sort lists efficiently.

Step-by-Step Explanation

Method 1: Using the sort() Method

The sort() method sorts the elements of a list in-place, meaning it modifies the original list instead of creating a new one. It is generally faster than using the sorted() function when working with large datasets because it avoids copying data.

# Example list of strings to be sorted alphabetically
fruits = ['banana', 'apple', 'cherry', 'date']

# Sort the list in-place using the sort() method
fruits.sort()

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

Here’s a breakdown of what happens:

  1. We create a list fruits containing four string elements.
  2. We call the sort() method on this list, which sorts its elements alphabetically by default.
  3. The sorted list is stored back in the original fruits variable.

Method 2: Using the sorted() Function

The sorted() function creates a new sorted list from an existing list without modifying the original list. It’s useful when you want to preserve the original order of elements and only need a sorted copy for further processing or display purposes.

# Example list of strings to be sorted alphabetically
fruits = ['banana', 'apple', 'cherry', 'date']

# Create a new sorted list using the sorted() function
sorted_fruits = sorted(fruits)

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

In this example:

  1. We have our original list fruits.
  2. The sorted() function creates a new sorted copy of the list, which we assign to sorted_fruits.
  3. Both lists (fruits and sorted_fruits) are distinct; modifying one won’t affect the other.

Code Explanation

  • sort() method: This is a built-in method that sorts elements of a list in-place. It’s used on lists directly: my_list.sort(). The default sorting order is ascending for strings (alphabetical), but you can specify reverse=True to sort descending.

fruits = [‘banana’, ‘apple’, ‘cherry’, ‘date’] fruits.sort(reverse=False) # Sorting in ascending alphabetical order by default, no need to explicitly pass False. print(fruits)


- **`sorted()` function:** This is a built-in function that returns a new sorted list from the elements of any sequence (like a list, tuple, or string). It's used on lists like this: `sorted(my_list)`. Like with `sort()`, default sorting is ascending for strings; for descending order, use reverse=True.

  ```python
fruits = ['banana', 'apple', 'cherry', 'date']
sorted_fruits = sorted(fruits)
print(sorted_fruits)

Summary

Sorting lists alphabetically in Python can be achieved using either the sort() method or the sorted() function. The key differences are: the sort() method modifies the original list, while the sorted() function creates a new sorted copy without changing the original. Choose your approach based on whether you need to modify the original list (in-place sorting) or preserve it and create a new sorted version for further use.

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

Intuit Mailchimp