How to sort the letters in a string alphabetically in Python? To sort a string alphabetically, you can use the built-in sorted()
function or convert the string to a list of characters and then use the sort()
method. Keep in mind that strings are immutable, so you need to convert them to a list before sorting.
You can sort a string alphabetically in Python using many ways, for example, by using sorted()
& join()
, sorted()
& accumulate()
, sorted()
+ join()
+ lambda, naive, and sorted()
& reduce()
functions. In this article, I will explain how to sort the string alphabetically by using all these methods with examples.
1. Quick Examples of Sorting a String Alphabetically
If you are in a hurry, below are some quick examples of how to sort the letters in a string alphabetically.
# Quick examples of string sort alphabetically
from itertools import accumulate
from functools import reduce
# Initialize the string
string = "SPARK"
# Example 1: Using sorted() and join() methods
# Sort letters of string alphabetically
def sortString(string):
return ''.join(sorted(string))
sorted_string = sortString(string)
# Example 2: Using sorted() and accumulate() methods
# Sort letters of string alphabetically
def sortString(string):
return tuple(accumulate(sorted(string)))[-1]
sorted_string = sortString(string)
# Example 3: Using sorted() and join() methods
# Sort letters of string alphabetically
def sortString(string):
return "".join(sorted(string, key = lambda x:x.lower()))
sorted_string = sortString(string)
# Example 4: Using sorted() and reduce() methods
# Sort letters of string alphabetically
def sortString(string):
return reduce(lambda a, b : a + b, sorted(string))
sorted_string = sortString(string)
# Example 5: Using naive method
# Sort letters of string alphabetically
li = []
l = len(string)
for i in range (0,l):
li.append(string[i])
for i in range(0,l):
for j in range(0,l):
if li[i]<li[j]:
li[i],li[j]=li[j],li[i]
result=""
for i in range(0,l):
result = result+li[i]
2. Sort String Alphabetically Using sorted() and join() Methods
You can sort the letters of a string alphabetically using the sorted() and join() methods. For example, first, you can initialize a string “SPARK”, then define a function sortString
to sort the letters of the string alphabetically using the sorted()
function. Finally, it calls the function with the input string and prints the sorted string.
# Initialize the string
string = "SPARK"
print("Original string:",string)
# Using sorted() and join() methods
# Sort letters of string alphabetically
def sortString(string):
return ''.join(sorted(string))
sorted_string = sortString(string)
print("After sorting a string alphabetically:",sorted_string)
Yields below output.
This function takes the input string “SPARK” and returns the sorted string “AKPRS” since ‘A’ comes before ‘K’ before ‘P’, and so on.
3. Using sorted() and accumulate() Methods
You can also sort the letters of a string alphabetically using the sorted()
and accumulate()
methods from the itertools
module. The sorted()
function sorts the characters of the input string string
alphabetically, resulting in a sorted list of characters.
The accumulate()
function from itertools
returns an iterator that calculates the accumulated values from the input iterable (the sorted list of characters in this case). In this context, it essentially accumulates the sorted characters into a tuple. The tuple() function is used to convert the accumulated values (which are returned as an iterator) into a tuple. Finally, [-1]
is used to access the last element of the tuple, which corresponds to the sorted string.
from itertools import accumulate
# Initialize the string
string = "SPARK"
print("Original string:",string)
# Using sorted() and accumulate() methods
# Sort letters of string alphabetically
def sortString(string):
return tuple(accumulate(sorted(string)))[-1]
sorted_string = sortString(string)
print("After sorting a string alphabetically:",sorted_string)
Yields the same output as above.
4. Using sorted() + join() + Lambda Methods
Alternatively, You can use the sorted()
method along with the join()
& lambda
method to sort the letters of a string alphabetically, with a slight modification. It uses the key parameter of the sorted()
function to sort the characters in a case-insensitive manner.
In the below example, the sorted()
function sorts the characters of the input string string
alphabetically. The key parameter is set to a lambda function lambda x: x.lower()
which converts each character to its lowercase form before sorting. The join()
method then, joins the sorted characters back into a string, resulting in the alphabetically sorted string with case-insensitive sorting.
from itertools import accumulate
# Initialize the string
string = "SPARK"
print("Original string:",string)
# Using sorted() and join() methods
# Sort letters of string alphabetically
def sortString(string):
return "".join(sorted(string, key = lambda x:x.lower()))
sorted_string = sortString(string)
print("After sorting a string alphabetically:",sorted_string)
Yields the same output as above.
5. Using sorted() and reduce() Methods
Another way to sort the letters of string alphabetically, using sorted()
method. In this example, this function works with the reduce() function from the functools
module and gives the desired output.
First, the sorted()
function sorts the characters of the input string string
alphabetically and then returns them as a list. After that, The reduce()
function is used with a lambda function lambda a,b:a+b
to concatenate the elements of the sorted list together, finally, resulting in a single string.
from functools import reduce
# Initialize the string
string = "SPARK"
print("Original string:",string)
# Using sorted() and reduce() methods
# Sort letters of string alphabetically
def sortString(string):
return reduce(lambda a, b : a + b, sorted(string))
sorted_string = sortString(string)
print("After sorting a string alphabetically:",sorted_string)
Yields the same output as above.
6. Using Naive Method
Finally, You can use a naive method to sort the letters of a string alphabetically, which involves iterating through the characters of the string and comparing them to sort them in ascending order. One way to achieve this is by using nested loops.
# Initialize the string
string = "SPARK"
print("Original string:",string)
# Using naive method
# Sort letters of string alphabetically
li = []
l = len(string)
for i in range (0,l):
li.append(string[i])
for i in range(0,l):
for j in range(0,l):
if li[i]<li[j]:
li[i],li[j]=li[j],li[i]
result=""
for i in range(0,l):
result = result+li[i]
print("After sorting a string alphabetically:",result)
Yields the same output as above.
Conclusion
In this article, I have explained how to sort a string alphabetically in Python by using sorted()
& join()
, sorted()
& accumulate()
, sorted()
+ join()
+ lambda, naive, and sorted()
& reduce()
functions with examples.
Happy Learning !!
Related Articles
- How to Parse a String in Python
- Compare strings using either ‘==’ or ‘is’ sometimes produces a different result.
- Python Extract Numbers From String
- Compare Strings in Python
- Check if String is Empty or Not in Python
- Convert Integer to String in Python
- Trim Whitespace from a String in Python?
- Convert String to Lowercase in Python
- Min Int in Python
- Minimum of Two Numbers in Python
- Maximum of Two Numbers in Python
- Python max() Function