我正在尝试实现以下功能:给定这样一个日期对象数组,返回第三个最新日期的函数。
这是我想出的解决方案,我得到了以下错误:
TypeError: must be string, not date import datetime
def third_latest():
timestamps = ['2011-06-2', '2011-08-05', '2011-02-04', '2010-1-14', '2010-12-13', '2010-1-12', '2010-2-11', '2010-2-07', '2010-12-02', '2011-11-30', '2010-11-26', '2010-11-23', '2010-11-22', '2010-11-16']
dates = [datetime.datetime.strptime(ts, "%Y-%m-%d") for ts in timestamps]
dates.sort()
sorteddates = [datetime.datetime.strftime(ts, "%Y-%m-%d") for ts in dates]
return str(sorteddates[3])
def main():
third_latest()
if __name__ == "__main__":
main()发布于 2017-03-25 13:22:44
strftime根据格式将datetime对象转换为字符串。
取代:
sorteddates = [datetime.datetime.strftime(ts, "%Y-%m-%d") for ts in dates]使用
sorteddates = [ts.strftime("%Y-%m-%d") for ts in dates]查看文档 for strftime。
此外,您还可以查看这里代码的工作版本。
https://stackoverflow.com/questions/43016815
复制相似问题