Python 根据生日对姓名和日期列表进行排序
我有一个以下格式的文本文件:Python 根据生日对姓名和日期列表进行排序,python,list,sorting,date,datetime,Python,List,Sorting,Date,Datetime,我有一个以下格式的文本文件: Robert, 03/07/1960 Michael, 24/11/1942 Simon, 14/08/1924 Sarah, 20/07/1935 Adam, 12/09/1944 Rachael, 24/09/1919 因此,is的名字和生日之间用逗号分隔,每个人都有一个新行。 使用IDLE,我想打印文本文件,并按出生日期从大到小列出 我修改了最初用于排序我在stackoverflow上读到的名字和分数的代码。然而,用约会代替分数带来了问题。我一直在阅读dat
Robert, 03/07/1960
Michael, 24/11/1942
Simon, 14/08/1924
Sarah, 20/07/1935
Adam, 12/09/1944
Rachael, 24/09/1919
因此,is的名字和生日之间用逗号分隔,每个人都有一个新行。
使用IDLE,我想打印文本文件,并按出生日期从大到小列出
我修改了最初用于排序我在stackoverflow上读到的名字和分数的代码。然而,用约会代替分数带来了问题。我一直在阅读datetime模块的相关内容,并试图根据生日元素进行排序,但我似乎无法使其正常工作
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.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)
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')
line=line.strip()。这是我的下一个问题。