我正在嘗試對當前年份的值進行排序。
當前年份值應首先顯示。
mdlist = [{0:'31 Jan 2022', 1:'', 2:'10 Feb 2022'},
{0:'10 Feb 2021', 1:'20, Feb 2021', 2:''},
{0:'10 Feb 2022', 1:'10 Feb 2022', 2:'10 Feb 2022'}]
mdlist = sorted(mdlist, key=lambda d:d[0])
但它沒有按預期作業
預期輸出:
mdlist = [{0:'31 Jan 2022', 1:'', 2:'10 Feb 2022'},
{0:'10 Feb 2022', 1:'10 Feb 2022', 2:'10 Feb 2022'},
{0:'10 Feb 2021', 1:'20 Feb 2021', 2:''}]
uj5u.com熱心網友回復:
也許您可以通過使用模塊來利用這些是日期時間的事實,datetime并按降序排列年份和升序排列月份:
from datetime import datetime
def sorting_key(dct):
ymd = datetime.strptime(dct[0], "%d %b %Y")
return -ymd.year, ymd.month, ymd.day
mdlist.sort(key=sorting_key)
輸出:
[{0: '31 Jan 2022', 1: '', 2: '10 Feb 2022'},
{0: '10 Feb 2022', 1: '10 Feb 2022', 2: '10 Feb 2022'},
{0: '10 Feb 2021', 1: '20 Feb 2021', 2: ''}]
uj5u.com熱心網友回復:
如果年份是,則使用key回傳的函式,否則。這將首先對所有 2022 日期進行排序。020221
firstyear = '2022'
mdlist = sorted(mdlist, key=lambda d: 0 if d:d[0].split()[-1] == firstyear else 1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/465136.html
上一篇:將物件轉換為字典鍵
