Learn How to use the sort and sorted method in Python programming. Sorting is the most commonly used task for programmers. Most of the time you may have to sort data, list, or dictionary values in Python.
Python is an interpreted, object-oriented, high-level programming language with dynamic semantics. It is high-level in-built information structures, combined with dynamic writing and dynamic binding.
It is engaging for speed application development, yet as to be used as a scripting language to attach existing elements.
Python is a simple, easy-to-use syntax that emphasizes readability and thus reduces the cost of program maintenance. As it supports modules and packages, which inspires program modularity and code reuse.
Table of Contents
How to Sort a List in Python?
The sort() method can be used to sort a list in ascending, descending, or user-defined order. This function can be used to sort a list of integers, floating-point numbers, string, and others. The sort() method references the original list and changes their elements in the sorted fashion without returning any value.
Syntax –
list.sort(reverse=True|False, key=myFunc)
Parameters:
By default, sort () doesn’t require any extra parameters. However, it has two optional parameters:
reverse – If true, the list is sorts in descending order
key – function that serves as a key for the sort comparison
numbers = [1, 3, 4, 2]
# Sorting list of Integers in ascending order
numbers.sort()
print(numbers) #[1, 2, 3, 4]
Sorted() in Python
Sorting any sequence is extremely straightforward in Python using the built-in technique sorted() that will all the diligence for you.
Sorted() sorts lists or tuple and returns a new list with the elements in sorted order without modifying the original inputs.
Syntax:
sorted(iterable, key, reverse)
Parameters: Sorted takes three parameters from which two are optional.
Iterable: sequence (list, tuple, string) or collection (dictionary, set, frozen set) or any other iterator that needs sorting.
Key(optional): A function that would serve as a key or a basis of sort comparison.
Reverse(optional): If set true, then the iterable would be sorted in reverse (descending) order, by default it is set as false.
my_list = [2, 8, 1, 4, 6, 3, 7]
new_list = sorted(my_list)
print(new_list)
# Reverse sort
print(sorted (my_list, reverse = True))
# original list not modified
Sort Using key parameter in Python
The sorted() method works for iterable such as list, tuples, dictionaries, string, etc. Using the key parameter we can sort their values using different parameters defined by ourselves.
pairs = [(3, 1), (4, 3), (8, 5), (1, 5)]
# sort using first value in the pair
pairs.sort(key=lambda x: x[0])
print(pairs)
Difference Between sort() and sorted() Function in Python
The simplest difference between sort() and sorted() is: sort() changes the list directly and doesn’t return any value, while sorted() doesn’t change the list and returns the new sorted list from its previous list.
Technique Used for sort() and sorted() Function
Python uses an algorithm called Timsort. It is a hybrid stable sorting algorithm derived from merge sort and insertion sort to give a better optimization for Python programs.
Sort String Alphabetically in Python
Strings in Python are a sequence of characters, they are like array elements that are non-mutable. So, we cannot change the string after creating it. However, we can reassign the value in the same variable that previously contained the string.
So, the sort and sorted method do not work directly with string to give the alphabetically sorted string. Here’s how you can sort string alphabatically.
word = "theyuvas"
char_list = sorted(word) # ['a', 'e', 'h', 's', 't', 'u', 'v', 'y']
sorted_word = "".join(char_list)
print(sorted_word) #'aehstuvy'
Are Python sort() and sorted() Methods Stable?
sort() and sorted() methods in python are “stable sorts”, which means that it’ll preserve the prevailing order once it gets tie in the values.
This results in a pleasant aspect, as delineate within the python wiki: you’ll be able to sort by multiple criteria.
Thus if we need to sort primarily by range (ascending), and secondarily by letter, we might try this quite easily. Simply sort by the secondary key first, then by the first key. Since the type is stable, you recognize that a tie in the second (primary) sort can preserve the order you had going in.