# Python – Sort Dictionary List by Key’s ith Index value

• Last Updated : 30 Aug, 2020

Given List of dictionaries, sort dictionaries on basis of Key’s ith index value

Input : [{“Gfg” : “Best”, “for” : “Geeks”}, {“Gfg” : “Good”, “for” : “Me”}, {“Gfg” : “Better”, “for” : “All”}], K = “Gfg”, i = 1
Output : [{‘Gfg’: ‘Best’, ‘for’: ‘Geeks’}, {‘Gfg’: ‘Better’, ‘for’: ‘All’}, {‘Gfg’: ‘Good’, ‘for’: ‘Me’}]
Explanation : Sort in order of e = e < o, as 1st index element of "Gfg"'s value.

Input : [{“Gfg” : “Best”, “for” : “Geeks”}, {“Gfg” : “Good”, “for” : “Me”}, {“Gfg” : “Better”, “for” : “All”}], K = “Gfg”, i = 0
Output : [{‘Gfg’: ‘Best’, ‘for’: ‘Geeks’}, {‘Gfg’: ‘Better’, ‘for’: ‘All’}, {‘Gfg’: ‘Good’, ‘for’: ‘Me’}]
Explanation : Sort in order of B = B < G, as 1st index element of "Gfg"'s value.

Method #1 : Using sort() + lambda

The combination of above functions can be used to solve this problem. In this, we perform task of sorting using sort() and lambda function in “key” parameter drives condition.

## Python3

 `# Python3 code to demonstrate working of  ` `# Sort Dictionary List by Key's ith Index value ` `# Using sort() + lambda ` ` `  `# initializing lists ` `test_list ``=` `[{``"Gfg"` `: ``"Best"``, ``"for"` `: ``"Geeks"``}, ` `             ``{``"Gfg"` `: ``"Good"``, ``"for"` `: ``"Me"``}, ` `             ``{``"Gfg"` `: ``"Better"``, ``"for"` `: ``"All"``}] ` ` `  `# printing original list ` `print``(``"The original list : "` `+` `str``(test_list)) ` ` `  `# initializing K  ` `K ``=` `"Gfg"` ` `  `# initializing i  ` `i ``=` `2` ` `  `# using sort to perform sort(), lambda ` `# function drives conditions ` `res ``=` `sorted``(test_list, key ``=` `lambda` `sub: sub[K][i]) ` ` `  `# printing result  ` `print``(``"List after sorting : "` `+` `str``(res)) `

Output

The original list : [{‘Gfg’: ‘Best’, ‘for’: ‘Geeks’}, {‘Gfg’: ‘Good’, ‘for’: ‘Me’}, {‘Gfg’: ‘Better’, ‘for’: ‘All’}]
List after sorting : [{‘Gfg’: ‘Good’, ‘for’: ‘Me’}, {‘Gfg’: ‘Best’, ‘for’: ‘Geeks’}, {‘Gfg’: ‘Better’, ‘for’: ‘All’}]

Method #2 : Using sort() + lambda + get()

The combination of above functions can also solve this problem. This is just a slight variation to above method. In this, we use get() to avoid chances of key not present in particular record.

## Python3

 `# Python3 code to demonstrate working of  ` `# Sort Dictionary List by Key's ith Index value ` `# Using sort() + lambda + get() ` ` `  `# initializing lists ` `test_list ``=` `[{``"Gfg"` `: ``"Best"``, ``"for"` `: ``"Geeks"``}, ` `             ``{``"Gfg"` `: ``"Good"``, ``"for"` `: ``"Me"``}, ` `             ``{``"Gfg"` `: ``"Better"``, ``"for"` `: ``"All"``}] ` ` `  `# printing original list ` `print``(``"The original list : "` `+` `str``(test_list)) ` ` `  `# initializing K  ` `K ``=` `"Gfg"` ` `  `# initializing i  ` `i ``=` `2` ` `  `# using sort to perform sort(), lambda ` `# function drives conditions, get() used to  ` `# avoid missing key error ` `res ``=` `sorted``(test_list, key ``=` `lambda` `sub: sub.get(K)[i]) ` ` `  `# printing result  ` `print``(``"List after sorting : "` `+` `str``(res)) `

Output

The original list : [{‘Gfg’: ‘Best’, ‘for’: ‘Geeks’}, {‘Gfg’: ‘Good’, ‘for’: ‘Me’}, {‘Gfg’: ‘Better’, ‘for’: ‘All’}]
List after sorting : [{‘Gfg’: ‘Good’, ‘for’: ‘Me’}, {‘Gfg’: ‘Best’, ‘for’: ‘Geeks’}, {‘Gfg’: ‘Better’, ‘for’: ‘All’}]

My Personal Notes arrow_drop_up
Recommended Articles
Page :