使用datetime模块
from datetime import date
date_1 = datetime.strptime("4/7/2018","%d/%m/%Y")
date_2 = datetime.strptime("24 October 2017","%d %B %Y")
date_1 == date_2 # False
看看strptime/strftime
,
使用列表,然后使用list.index
来获得位置会更有意义。但是由于列表的索引为0,所以我们需要添加一个以获取结果。
months = ['January','February','March','April','May','June','July','August','September','October','November','December']
print(months.index('October')+1) # -> 10
请注意,list.index
返回一个int,因此要将其与其他月份的值进行比较,您需要将其转换为字符串。
,
尽管datetime
模块为日期和类似概念提供了一个不错的界面,但是我希望您出于练习本身的兴趣而对此感兴趣。
字典month_dict
的结构有点奇怪。当前,它将一个大月份列表映射到另一个大整数列表。您想要的是每个月与其对应数字之间的映射。检查一下:
def date_func(a,b):
y = a.split(" ")
z = b.split("/")
if month_dict[y[1]] + y[0] + y[2] == z[0] + z[1] + z[2]:
return True
else:
return False
month_dict = {
'January' : '1','February' : '2','March' : '3','April' : '4','May' : '5','June' : '6','July' : '7','August' : '8','September': '9','October' : '10','November' : '11','December' : '12',}
# Test
print(date_func('24 October 2017','4/7/2018')) # False
print(date_func('24 October 2017','10/24/2017')) # True
还请注意,字典中的“整数”用引号引起来,即它们是str
而不是int
,以便与其他{{1 }}。
关于错误的说明
虽然我相信以上内容可以满足您的要求,但让我指出一个错误:
您的字符串连接策略并不完美,这两个调用都返回了str
:
True
(在两种情况下均为date_func('1 November 2017','11/1/2017')
date_func('11 January 2017','11/1/2017')
)。解决方案是分别比较这三个整数中的每一个,最好先将它们放入容器中,以达到最佳效果。在下面,我选择了month_dict[y[1]] + y[0] == '111'
,因为我可以直接与list
进行比较:
z
本文链接:https://www.f2er.com/3163742.html