Python在不晚于给定日期的列表中查找最大日期
我想将日期字符串与日期字符串列表进行比较,找出列表中不晚于给定日期的最大日期Python在不晚于给定日期的列表中查找最大日期,python,date,Python,Date,我想将日期字符串与日期字符串列表进行比较,找出列表中不晚于给定日期的最大日期 date='2015-04-16' dates=[str(int(date[:4])-1)+'-05-01' ,str(int(date[:4])-1)+'-09-01' ,str(int(date[:4])-1)+'-11-01' ,date[:4]+'-05-01' ,date[:4]+'-09-01' ,date[:4]+'-11-01'] 正确的输出应该是日期中的第三
date='2015-04-16'
dates=[str(int(date[:4])-1)+'-05-01'
,str(int(date[:4])-1)+'-09-01'
,str(int(date[:4])-1)+'-11-01'
,date[:4]+'-05-01'
,date[:4]+'-09-01'
,date[:4]+'-11-01']
正确的输出应该是日期中的第三个元素,即“2014-11-01”
有人能帮我吗?谢谢 由于使用了按字典顺序排列的日期格式,因此可以直接比较字符串。查找一组项目的最大值是
max()
的工作。可以通过生成器表达式选择组中的项目
date='2015-04-16'
dates=[str(int(date[:4])-1)+'-05-01'
,str(int(date[:4])-1)+'-09-01'
,str(int(date[:4])-1)+'-11-01'
,date[:4]+'-05-01'
,date[:4]+'-09-01'
,date[:4]+'-11-01']
print max(x for x in dates if x < date)
date='2015-04-16'
日期=[str(int(date[:4])-1)+'-05-01'
,str(int(date[:4])-1)+'-09-01'
,str(int(date[:4])-1)+'-11-01'
,日期[:4]+'-05-01'
,日期[:4]+'-09-01'
,日期[:4]+'-11-01']
打印最大值(如果x<日期,则x代表x个日期)
参考资料:
import bisect
date='2015-04-16'
dates=[str(int(date[:4])-1)+'-05-01'
,str(int(date[:4])-1)+'-09-01'
,str(int(date[:4])-1)+'-11-01'
,date[:4]+'-05-01'
,date[:4]+'-09-01'
,date[:4]+'-11-01']
i = bisect.bisect(dates, date)
# Subtract one from the insertion point to find the previous date.
print dates[i - 1]