Python | Sort given list of dictionaries by date
source link: https://www.geeksforgeeks.org/python-sort-given-list-of-dictionaries-by-date/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
- Last Updated : 11 May, 2020
Given a list of dictionary, the task is to sort the dictionary by date. Let’s see a few methods to solve the task.
Method #1: Using naive approach
# Python code to demonstrate
# sort a list of dictionary
# where value date is in string
# Initialising list of dictionary
ini_list
=
[{
'name'
:
'akash'
,
'd.o.b'
:
'1997-03-02'
},
{
'name'
:
'manjeet'
,
'd.o.b'
:
'1997-01-04'
},
{
'name'
:
'nikhil'
,
'd.o.b'
:
'1997-09-13'
}]
# printing initial list
print
(
"initial list : "
,
str
(ini_list))
# code to sort list on date
ini_list.sort(key
=
lambda
x:x[
'd.o.b'
])
# printing final list
print
(
"result"
,
str
(ini_list))
initial list : [{‘name’: ‘akash’, ‘d.o.b’: ‘1997-03-02’}, {‘name’: ‘manjeet’, ‘d.o.b’: ‘1997-01-04’}, {‘name’: ‘nikhil’, ‘d.o.b’: ‘1997-09-13’}]
result [{‘name’: ‘manjeet’, ‘d.o.b’: ‘1997-01-04’}, {‘name’: ‘akash’, ‘d.o.b’: ‘1997-03-02’}, {‘name’: ‘nikhil’, ‘d.o.b’: ‘1997-09-13’}]
Method #2: Using datetime.strptime
and lambda
# Python code to demonstrate
# sort a list of dictionary
# where value date is in a string
from
datetime
import
datetime
# Initialising list of dictionary
ini_list
=
[{
'name'
:
'akshat'
,
'd.o.b'
:
'1997-09-01'
},
{
'name'
:
'vashu'
,
'd.o.b'
:
'1997-08-19'
},
{
'name'
:
'manjeet'
,
'd.o.b'
:
'1997-01-04'
},
{
'name'
:
'nikhil'
,
'd.o.b'
:
'1997-09-13'
}]
# printing initial list
print
(
"initial list : "
,
str
(ini_list))
# code to sort list on date
ini_list.sort(key
=
lambda
x: datetime.strptime(x[
'd.o.b'
],
'%Y-%m-%d'
))
# printing final list
print
(
"result"
,
str
(ini_list))
initial list : [{‘d.o.b’: ‘1997-09-01’, ‘name’: ‘akshat’}, {‘d.o.b’: ‘1997-08-19’, ‘name’: ‘vashu’}, {‘d.o.b’: ‘1997-01-04’, ‘name’: ‘manjeet’}, {‘d.o.b’: ‘1997-09-13’, ‘name’: ‘nikhil’}]
result [{‘d.o.b’: ‘1997-01-04’, ‘name’: ‘manjeet’}, {‘d.o.b’: ‘1997-08-19’, ‘name’: ‘vashu’}, {‘d.o.b’: ‘1997-09-01’, ‘name’: ‘akshat’}, {‘d.o.b’: ‘1997-09-13’, ‘name’: ‘nikhil’}]
Method #3: Using operator.itemgetter
# Python code to demonstrate
# sort a list of dictionary
# where value date is in string
import
operator
# Initialising list of dictionary
ini_list
=
[{
'name'
:
'akash'
,
'd.o.b'
:
'1997-03-02'
},
{
'name'
:
'manjeet'
,
'd.o.b'
:
'1997-01-04'
},
{
'name'
:
'nikhil'
,
'd.o.b'
:
'1997-09-13'
}]
# printing initial list
print
(
"initial list : "
,
str
(ini_list))
# code to sort list on date
ini_list.sort(key
=
operator.itemgetter(
'd.o.b'
))
# printing final list
print
(
"result"
,
str
(ini_list))
initial list : [{‘d.o.b’: ‘1997-03-02’, ‘name’: ‘akash’}, {‘d.o.b’: ‘1997-01-04’, ‘name’: ‘manjeet’}, {‘d.o.b’: ‘1997-09-13’, ‘name’: ‘nikhil’}]
result [{‘d.o.b’: ‘1997-01-04’, ‘name’: ‘manjeet’}, {‘d.o.b’: ‘1997-03-02’, ‘name’: ‘akash’}, {‘d.o.b’: ‘1997-09-13’, ‘name’: ‘nikhil’}]
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK