Python | Sort given list of dictionaries by date

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 dictionaryini_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 listprint ("initial list : ", str(ini_list))  # code to sort list on dateini_list.sort(key = lambda x:x['d.o.b'])  # printing final listprint ("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 dictionaryini_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 listprint ("initial list : ", str(ini_list))  # code to sort list on dateini_list.sort(key = lambda x: datetime.strptime(x['d.o.b'], '%Y-%m-%d'))  # printing final listprint ("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 dictionaryini_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 listprint ("initial list : ", str(ini_list))  # code to sort list on dateini_list.sort(key = operator.itemgetter('d.o.b'))  # printing final listprint ("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’}]
Python dictionary-programs
Python-sort
Python
Python Programs
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Python Dictionary
Enumerate() in Python
Different ways to create Pandas Dataframe
Read a file line by line in Python
How to Install PIP on Windows ?
Python program to convert a list to string
Defaultdict in Python
Python | Get dictionary keys as a list
Python | Convert a list to dictionary
Python Program for Fibonacci numbers