我有一个如下所示的列表:
persons = [{'id': 11, 'passport': {'id': 11, 'birth_info':{'date': 10/10/2016...}}},{'id': 22, 'passport': {'id': 22, 'birth_info':{'date': 11/11/2016...}}}]
我需要按照人员的出生日期子键对人员列表进行排序。
应该如何操作? 谢谢。
sorted()
函数提供了key
参数。可以定义一个可调用对象,返回用于比较元素的键:
sorted(persons, key=lambda x: x['passport']['birth_info']['date'])
参数x是给定人员列表中的一个项目。
如果日期是字符串,则可以使用datetime
模块:
sorted(persons, key=lambda x: datetime.datetime.strptime(x['passport']['birth_info']['date'], '%m/%d/%Y'))
试试这个
from datetime import datetime
print(sorted(persons, key=lambda x: datetime.strptime(x['passport']['birth_info']['date'], "%d/%m/%Y"))) #reverse=True for descending order.
persons
的list
中有一个dict
。 - metatoaster