Open In App

How to sort a list of strings in Python

Last Updated : 19 Nov, 2024
Comments
Improve
Suggest changes
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