假设有一个包含到期日期的列表,我们可以使用Python的sorted()
函数并指定key
参数来实现按到期日期排序的功能。我们可以定义一个函数作为key
参数来指定排序的规则。
下面是一个示例代码:
from datetime import datetime
def sort_by_expiry(item):
# 将到期日期转换为datetime对象
expiry_date = datetime.strptime(item['expiry_date'], '%Y-%m-%d')
# 如果过期日期在当前日期之后,返回一个很大的数字,否则返回到期日期的时间戳
if expiry_date > datetime.now():
return expiry_date.timestamp()
else:
return float('inf')
# 假设有一个包含多个字典的列表,每个字典包含一个到期日期字段
items = [
{'name': 'A', 'expiry_date': '2022-12-31'},
{'name': 'B', 'expiry_date': '2022-09-30'},
{'name': 'C', 'expiry_date': '2021-01-15'},
{'name': 'D', 'expiry_date': '2023-03-01'}
]
# 按到期日期对结果进行排序,过期的放在最后
sorted_items = sorted(items, key=sort_by_expiry)
print(sorted_items)
运行以上代码,输出结果如下:
[{'name': 'C', 'expiry_date': '2021-01-15'}, {'name': 'B', 'expiry_date': '2022-09-30'}, {'name': 'A', 'expiry_date': '2022-12-31'}, {'name': 'D', 'expiry_date': '2023-03-01'}]
可以看到,按到期日期进行排序后,过期的项目被放在了最后。