Sorting List in Python

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 NameValuesDefault 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

原文链接:Sorting List in Python

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容