gpt4 book ai didi

python - 根据生日对姓名和日期列表进行排序

转载 作者:行者123 更新时间:2023-12-01 05:19:12 28 4
gpt4 key购买 nike

我有一个以下格式的文本文件:

Robert, 03/07/1960
Michael, 24/11/1942
Simon, 14/08/1924
Sarah, 20/07/1935
Adam, 12/09/1944
Rachael, 24/09/1919

因此,姓名和生日用逗号分隔,每个人换行。我想使用 IDLE 打印文本文件并按出生日期从大到小列出它。

我修改了这段代码,最初用于对我在 stackoverflow 上读到的姓名和分数进行排序。然而,用日期代替分数会带来问题。我一直在阅读有关日期时间模块的信息,并尝试根据生日元素进行排序,但我似乎无法使其工作。

import datetime
format = '%d/%m/%Y'

dates = []
with open("namedate.txt") as f:
for line in f:
line.strip()
name, date = line.split(',')
date = datetime.datetime.strptime(date, format)
dates.append((name, date))

dates.sort(key=lambda s: s[1])

for name, date in dates:
print(name, date)

我收到此错误:

ValueError: time data ' 03/07/1960\n' does not match format '%d/%m/%Y'

所以我需要从生日元素中删除“\n”,但无法使其工作。

最佳答案

功能是:

import datetime
format = '%d/%m/%Y'

dates = []
with open("namedate.txt") as f:
for line in f:
line = line.strip()
name, date = line.split(',')
date = datetime.datetime.strptime(date.strip(), format)
dates.append((name, date))

dates.sort(key=lambda s: s[1])

for name, date in dates:
print(name, date.strftime(format))

输出将是:

('Rachael', '24/09/1919')
('Simon', '14/08/1924')
('Sarah', '20/07/1935')
('Michael', '24/11/1942')
('Adam', '12/09/1944')
('Robert', '03/07/1960')

关于python - 根据生日对姓名和日期列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22705379/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com