In Python, Sorting is systematically arranging the data as per the given criteria. These have a lot of applications and you will be studying this in-depth.
Examples:
*) Arranging student roll numbers in ascending order
*) Displaying the products which have high sales etc
Sorting lists
Let us start with a simple example of list sorting by numbers. We'll be using a built-in method under list sort()
method to get a result. Syntax
newlist.sort(optional parameters)
Below optional parameters
Option Name -- Values -- Default Value
reverse : -- True or False -- False
key -- NA -- len() method to sort on bases on length of string,custom user defined function can also be used |
Sorting numbers in Ascending order
a=[
9,6,8,2,1,7,3
]
a.sort()
print(a)
#PYTHON OUTPUT
[1, 2, 3, 6, 7, 8, 9]
Sorting numbers in Descending order
a=[
9,6,8,2,1,7,3
]
a.sort(reverse=True)
print(a)
#PYTHON OUTPUT
[9, 8, 7, 6, 3, 2, 1]
Sorting years with sort()
using user defined function
def myfunc(e):
return e
a=[
2018,2015,2017,2000,2013,2011
]
a.sort(key=myfunc)
print(a)
#PYTHON OUTPUT
[2000, 2011, 2013, 2015, 2017, 2018]
Sorting names by alphabets
names = [
'John','Nancy','Amber','Peter','Bane'
]
names.sort()
print(names)#prints names in alphabetical ascending order
names.sort(reverse=True)
print(names)#prints names in alphabetical descending order
#PYTHON OUTPUT
['Amber', 'Bane', 'John', 'Nancy', 'Peter']
['Peter', 'Nancy', 'John', 'Bane', 'Amber']
Note : sort()
method only sorts on list and returns None
. To sort on non-list array use sorted()
method.
Sorting Tuples
Sorting using sorted()
method
d = (
5,2,6,1,9
)
print(sorted(d))
print(sorted(d,reverse=True))
#PYTHON OUTPUT
[1, 2, 5, 6, 9]
[9, 6, 5, 2, 1]
Sorting Dictionaries
Sorting Keys of the dictionary Below we have created a dictionary which has names in key and value. To only order keys of dictionary use d.keys()
method this will return keys of that dictionary. Calling reverse=True
attribute inside sorted()
method will return sorted list in reverse order.
d={
0:'Amber',
1:'John',
2:'Kiran',
3:'Rakesh',
4:'Yogesh',
}
print(sorted(d.keys())) #This will order keys of dictionary in Ascending Order
print(sorted(d.keys(),reverse=True)) # Calling reverse attribute with value True will print the keys of dictionary in Descending Order
#PYTHON OUTPUT
[0, 1, 2, 3, 4]
[4, 3, 2, 1, 0]
Sorting Values in the dictionary Here we'll be using the same method as above except insisted on calling d.keys()
. We'll call d.values()
method which returns values of dictionary.
d={
0:'Amber',
1:'John',
2:'Kiran',
3:'Rakesh',
4:'Yogesh',
}
print(sorted(d.values())) #This will order values of dictonary in Ascending Order
print(sorted(d.values(),reverse=True)) # Calling reverse attribute with value True will print the values of dictonary in Descending Order
Advance Dictionary Sorting
In reality, there will be many cases where dictionary is multi-dimensional and need the be order. So in this tutorial, we'll be covering most of the complex multi-dimensional dict and sort them in order. Sorting dictionary by user age.
d = {
0 : {
'username' : 'Jane154',
'fname' : 'Jane',
'age' : 22,
},
1 : {
'username' : 'Humayun12',
'fname' : 'Humayun',
'age' : 16,
},
2 : {
'username' : 'Rakesh45',
'fname' : 'Rakesh',
'age' : 29,
},
3 : {
'username' : 'Kimmy123',
'fname' : 'Kimmy',
'age' : 12,
},
}
def sortByAge(e):
return e[1]['age']
print(sorted(d.items(),key=sortByAge))
print("\n\nSorting age in reverse order with tuple inside list \n\n")
print(sorted(d.items(),key=sortByAge,reverse=True))
print("\n\nSorting age in reverse order and this will return a dictionary \n")
print(dict(sorted(d.items(),key=sortByAge,reverse=True)))
#PYTHON OUTPUT
[(3, {'username': 'Kimmy123', 'fname': 'Kimmy', 'age': 12}), (1, {'username': 'Humayun12', 'fname': 'Humayun', 'age': 16}), (0, {'username': 'Jane154', 'fname': 'Jane', 'age': 22}), (2, {'username': 'Rakesh45', 'fname': 'Rakesh', 'age':29})]
Sorting age in reverse order
[(2, {'username': 'Rakesh45', 'fname': 'Rakesh', 'age': 29}), (0, {'username':'Jane154', 'fname': 'Jane', 'age': 22}), (1, {'username': 'Humayun12', 'fname': 'Humayun', 'age': 16}), (3, {'username': 'Kimmy123', 'fname': 'Kimmy', 'age':12})]
{2: {'username': 'Rakesh45', 'fname': 'Rakesh', 'age': 29}, 0: {'username': 'Jane154', 'fname': 'Jane', 'age': 22}, 1: {'username': 'Humayun12', 'fname': 'Humayun', 'age': 16}, 3: {'username': 'Kimmy123', 'fname': 'Kimmy', 'age': 12}}
Note: Dictionaries are unordered and unsorted collection on data. so like lists they don't have sort() method. But bypassing dictionary in sorted()
method will return Tuple inside list in sorted order.
click here to read the complete article
Top comments (0)