Python中元组列表按日期排序需求:将最年长者排在首位
按出生日期排序列表(最年长者优先)
你需要把列表中的元组按出生日期从早到晚排序,让最年长的人排在首位,用Python可以轻松实现,以下是具体方法:
方法一:创建新的排序后列表
用sorted()函数,指定每个元组的第三个元素(出生日期字符串)作为排序依据:
people = [ ('John', '12345', '1972-02-08'), ('Sara', '12345', '1977-07-01'), ('Mario', '12345', '1971-06-13'), ('Lucas', '12345', '1967-04-27'), ('Kiara', '12345', '1973-02-15') ] # 按出生日期升序排序(早的在前,即最年长者优先) sorted_people = sorted(people, key=lambda x: x[2]) print(sorted_people)
运行后输出结果:
[('Lucas', '12345', '1967-04-27'), ('Mario', '12345', '1971-06-13'), ('John', '12345', '1972-02-08'), ('Kiara', '12345', '1973-02-15'), ('Sara', '12345', '1977-07-01')]
方法二:直接修改原列表
如果不想生成新列表,用列表自带的sort()方法原地排序:
people.sort(key=lambda x: x[2]) print(people) # 原列表已被排序
关键说明
key=lambda x: x[2]:这个匿名函数指定用每个元组的第三个元素(索引为2)作为排序依据。- 你的出生日期是
YYYY-MM-DD格式,这种格式的字符串可以直接比较大小,和日期实际顺序一致,不需要额外转换为日期对象。
内容的提问来源于stack exchange,提问作者Drake Ramoray
相关产品推荐
相关产品推荐

