按mm/dd/yy格式排序日期

2024-09-24 02:28:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python非常陌生,我想知道如何对元组列表进行排序,其中每个元组的第二个元素是另一个元组,如下所示:

[ ('Adam', (12,16,1949) ), ('Charlie', (9,4,1988) ), ('Daniel', (11,29,1990) ),
('Ellie', (11, 28, 1924) ), ('Feenie', (2,10,1954) ), ('Harry', (8,15,1924) ),
('Iggy', (12, 29, 1924) ), ('Jack', (2,21,1920) )]

我想使用sorted函数对列表进行排序,从最年轻到最年长,但是当我尝试使用我的函数时:

^{pr2}$

它以升序的年份来组织它,但似乎并不关心月份或日期。 我在这里发现的大多数问题都是以YYYY-MM-DD的形式出现的


Tags: 函数元素列表排序元组sortedjackdaniel
3条回答
sorted(xs, reverse=True, key=lambda (name, (m,d,y)): (y,m,d))

转换为datetime.date是不必要的,但它可能是更好地表达意思。在

^{pr2}$

使key函数返回一个按顺序包含年、月、日的元组。在

def by_day(t):
    m, d, y = t[1]
    return y, m, d

def sort_ages(a:list):
    return sorted(a, key=by_day, reverse=True)

给定列表的输出示例:

^{pr2}$
def sort_ages(a:list):

    return sorted(a, key=lambda x:(x[1][2], x[1][0], x[1][1]), reverse=True)

按年、月、日排序

相关问题 更多 >