Open In App

How to sort a list of strings in Python

Last Updated : 19 Nov, 2024
Suggest changes
Share
Like Article
Like
Report

In this article, we will explore various methods to sort a list of strings in Python. The simplest approach is by using sort().

Using sort() Method

The sort() method sorts a list in place and modifying the original list directly.

Python
a = ["banana", "apple", "cherry"] # Sorting list in place a.sort() print(a) 

Output
['apple', 'banana', 'cherry'] 

Explanation:

  • a.sort() sorts the original list by modifying it.
  • Strings are sorted lexicographically (dictionary order).

Using sorted() Function

The sorted() function returns a new sorted list containing all the items from the original list.

Python
a = ["banana", "apple", "cherry"] # Sorting the list res = sorted(a) print(res) 

Output
['apple', 'banana', 'cherry'] 

Explanation:

  • sorted(a) creates a new sorted list without modifying the original a.
  • Strings are sorted lexicographically (dictionary order).

Note: The main difference between sort() and sorted() is that sort() modifies the list in place without returning a new list, while sorted() creates a new sorted list from any iterable without modifying the original.

Sorting in Reverse Order

To sort strings in descending order, we can use the reverse=True parameter.

Python
a = ["banana", "apple", "cherry"] # Sorting in reverse order res = sorted(a, reverse=True) print(res) 

Output
['cherry', 'banana', 'apple'] 

Case-Insensitive Sorting

String sorting in Python is case-sensitive by default. To perform a case-insensitive sort, we can use the key=str.lower parameter in sorted() function.

Python
a = ["Banana", "apple", "Cherry"] res = sorted(a, key=str.lower) print(res) 

Output
['apple', 'Banana', 'Cherry'] 

Explanation: key=str.lower ensures that sorting is performed based on lowercase equivalents of strings.

Sorting by String Length

We can sort a list of strings by their lengths using the key=len parameter in sorted() function.

Python
a = ["banana", "apple", "kiwi"] # Sorting by length res = sorted(a, key=len) print(res) 

Output
['kiwi', 'apple', 'banana'] 

Explanation: key=len sorts the strings based on their length in ascending order.

Sorting using Custom Key

We can also use any custom sorting logic using a key function.

Python
a = ["banana", "apple", "cherry"] # Sorting by last character res = sorted(a, key=lambda s: s[-1]) print(res) 

Output
['banana', 'apple', 'cherry'] 

Explanation: lambda s: s[-1] extracts the last character of each string for comparison.


Similar Reads