我正在使用 python2 環境(遺留軟體的代碼),但我無法訪問 numpy 和 pandas。我偶然發現了一個問題:
如何僅使用月份和日期對日期進行排序(不是年份,它適用于只有月份和日期很重要的生日)。
我的嘗試
from datetime import date
lst = [date(2021,1,10), date(2020,3,1), date(2020,2,2), date(2020,2,1),date(2020,1,10)]
lst = sorted(lst)
print(lst)
[datetime.date(2020, 1, 10),
datetime.date(2020, 2, 1),
datetime.date(2020, 2, 2),
datetime.date(2020, 3, 1),
datetime.date(2021, 1, 10)]
必需的
[datetime.date(2020, 1, 10),
datetime.date(2021, 1, 10)
datetime.date(2020, 2, 1),
datetime.date(2020, 2, 2),
datetime.date(2020, 3, 1),
]
uj5u.com熱心網友回復:
你必須定義一個排序鍵
sorted(lst, key=lambda x: (x.month, x.day))
uj5u.com熱心網友回復:
查看該sort函式的 [檔案][1] 。您可以提供key用于為要排序的串列的每個元素提取比較鍵的關鍵字引數。由于您只想按月和日排序,因此可以定義以下鍵提取函式:
def key_month_day(dt):
return 12*dt.month dt.day
然后使用它對您的日期進行排序:
lst = sorted(lst, key=key_month_day)
[1]: https://docs.python.org/3/library/stdtypes.html#:~:text=following additional method:-,sort,-(*, key=None,% 20反轉
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/382538.html
