Sort A Strings In Python: sorted(), And Examples | Updated 2025

Learn How to Sort a String in Python

CyberSecurity Framework and Implementation article ACTE

About author

Naveen ( Python Developer )

Naveen is an experienced Python Developer focused on creating efficient, scalable, and maintainable applications. With solid expertise in object-oriented programming and deep knowledge of frameworks such as Django and Flask, he builds backend systems, APIs, and automation tools that drive modern software solutions.

Last updated on 19th Sep 2025| 11153

(5.0) | 32961 Ratings

What is String Sorting?

Sort a String is a fundamental operation in computer programming, especially when working with textual data. It involves arranging characters or words in a particular order, typically ascending or descending. In Python, strings are sorted based on the Unicode code points of each character, allowing for consistent ordering across different datasets. This technique is essential in many real-world applications such as data analysis, organizing lists, creating indexes, or filtering information. Sorting a string can be done either by its individual characters or by words if it’s a sentence or phrase. Python provides robust built-in methods for both cases, making the process straightforward and efficient. This tutorial dives into all possible ways of sorting strings in Python and explores different use cases, nuances like case sensitivity, and best practices. String sorting is the process of arranging a list or collection of strings (text values) in a specific order, typically alphabetical (lexicographical) or custom-defined based on certain criteria. In programming, string sorting is commonly used for tasks like organizing names, words, file paths, or any data stored as text. In Python, strings are sorted based on the Unicode (ASCII) values of their characters. This means uppercase letters come before lowercase ones unless specified otherwise.



Interested in Obtaining Your Python Certificate? View The Python Developer Course Offered By ACTE Right Now!


Using sorted() Function

The most commonly used function for sorting strings in Python is sorted(). It takes any iterable (like a string) and returns a list of its elements sorted in ascending order. When you apply it to a string, Python treats the string as a list of characters and returns a sorted list of those characters.

Using sorted() Function Article
  • s = “python”
  • sorted_s = sorted(s)
  • print(sorted_s) # [‘h’, ‘n’, ‘o’, ‘p’, ‘t’, ‘y’]

Note that sorted() does not modify the original string because strings are immutable in Python. Instead, it returns a new sorted list. To get the result back as a string, we need to convert this list of characters back using the Using join() and sorted() method.

  • sorted_string = ”.join(sorted(s))
  • print(sorted_string)

Output: ‘henopty’


    Subscribe To Contact Course Advisor

    Converting String to List and Back

    Since Python strings are immutable, any sorting operation will require converting the string to a list, performing the sort, and converting it back. Here’s how you can do that:

    • s = “developer”
    • char_list = list(s)
    • char_list.sort()
    • sorted_str = ”.join(char_list)
    • print(sorted_str)

    Output: ‘deeeloprv’

    This approach is functionally equivalent to using sorted() with join() but can be useful if you want to sort in-place or do more custom sorting logic before converting back to a string.



    Gain Your Master’s Certification in Python Developer by Enrolling in Our Python Master Program Training Course Now!


    Case Sensitivity in Sorting

    Sorting is case-sensitive by default. Python sorts uppercase letters (A-Z) before lowercase letters (a-z) due to the way Unicode values are assigned.

    • s = “Python”
    • print(”.join(sorted(s)))

    Output: ‘Phonty’

    This is because the Unicode value of ‘P’ is less than ‘h’, ‘n’, ‘o’, ‘t’, and ‘y’. To make the sorting case-insensitive, use the key=str.lower argument:

    • print(”.join(sorted(s, key=str.lower)))

    Output:’henopty’

    This method allows you to sort strings in a more natural alphabetical order, disregarding case.


    Course Curriculum

    Develop Your Skills with Python Developer Certification Course

    Weekday / Weekend BatchesSee Batch Details

    Using join() and sorted() Together

    As shown above, combining sorted() with join() is the most concise and efficient way to return a sorted string from character-level sorting:

    • s = “banana”
    • sorted_string = ”.join(sorted(s))
    • print(sorted_string) # ‘aaabnn’

    This idiom is used widely and works well in situations requiring compact, readable code.


    Are You Preparing for Python Jobs? Check Out ACTE’s Python Interview Questions and Answers to Boost Your Preparation!


    Sorting Words vs Characters

    In addition to Sort a String by characters, Python can also sort by words. This is useful when you want to rearrange the words in a sentence:

    sentence = “the quick brown fox jumps over the lazy dog”

    • words = sentence.split()
    • sorted_words = sorted(words)
    • print(‘ ‘.join(sorted_words))

    Sorting words is useful in generating lexicons, keyword analysis, and arranging indexed terms.

    To sort words in reverse:

    • sorted_words_desc = sorted(words, reverse=True)
    • print(‘ ‘.join(sorted_words_desc))

    Real-World Use Cases

    String sorting is not just a theoretical concept. It has practical value in many industries:

    • Anagram Detection: Sorting characters in words and comparing helps identify anagrams.
    • Auto-Complete: Sorted keyword lists can improve lookup speed.
    • Data Cleaning: Sorting helps identify duplicates and outliers in data.
    • Text Mining: Organizing words for keyword frequency analysis.
    • Gaming: Sorting letter tiles or names alphabetically.

    Example of anagram detection:

    • def are_anagrams(str1, str2):
    • return sorted(str1.lower()) == sorted(str2.lower())
    • print(are_anagrams(“listen”, “silent”))

    Handling Unicode Strings

    Sorting Unicode strings works the same as sorting regular ASCII strings, but it’s important to normalize the text to avoid inconsistencies. For example:

    • import unicode data
    • s1 = “café”
    • s2 = “café”
    • print(s1 == s2)
    • s1_nfc = unicodedata.normalize(‘NFC’, s1)
    • s2_nfc = unicodedata.normalize(‘NFC’, s2)
    • print(s1_nfc == s2_nfc)

    Unicode normalization ensures that visually identical strings are treated as equal, which is crucial when sorting international text.


    Python Development Sample Resumes! Download & Edit, Get Noticed by Top Employers! Download

    Conclusion

    Sorting strings in Python is a fundamental skill that every programmer should master. Python provides multiple tools to perform sorting at the character or word level. The Using sorted() Function is flexible and powerful, and when combined with join(), it becomes an efficient way to handle strings. Key takeaways include understanding the difference between sorting characters and words, handling case sensitivity, and dealing with Unicode strings correctly. Reverse sorting and case-insensitive sorting are essential techniques, and Unicode normalization is a must when working with international datasets. With these tools, sorting becomes a powerful mechanism to clean, format, and analyze text data efficiently in Python. Whether you’re building an app, automating a task, or cleaning datasets for machine learning, Sort a String will undoubtedly play a role in your development toolkit.

    Upcoming Batches

    Name Date Details
    Python Developer Certification Course

    15 - Sep- 2025

    (Weekdays) Weekdays Regular

    View Details
    Python Developer Certification Course

    17 - Sep - 2025

    (Weekdays) Weekdays Regular

    View Details
    Python Developer Certification Course

    20 - Sep - 2025

    (Weekends) Weekend Regular

    View Details
    Python Developer Certification Course

    21 - Sep - 2025

    (Weekends) Weekend Fasttrack

    View Details