6

Python | Sort given list of dictionaries by date

 3 years ago
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.
neoserver,ios ssh client
Sort given list of dictionaries by date
Related Articles
Improve Article
Python | Sort given list of dictionaries by date
  • 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))
Output:

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))
Output:

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))
Output:

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK