从这本字典中获取最接近日期范围的最pythonic方法是什么?
DATE_FORMAT_CODES = {
'102': ('CCYYMMDD', '%Y%m%d'),
'203': ('CCYYMMDDHHMM', '%Y%m%d%H%M'),
'204': ('CCYYMMDDHHMMSS', '%Y%m%d%H%M%S'),
'602': ('CCYY', '%Y'),
'610': ('CCYYMM', '%Y%m'),
}
所以我想说我有一个价值:
date_string = '201704256'
我想要一种能够检测最接近的日期格式并返回其密钥的方法。所以在这种情况下,它会返回'102'
。
我们可以假设日期字符串始终采用正确的格式,并且它始终符合上面指定的格式。换句话说,每个可能的输入都将以CC开头,然后是YY,然后是MM等。唯一的问题是输入值的长度。
我尝试过这样的事情:
min(DATE_FORMAT_CODES.values(), key=lambda x:abs(x - len(date_string)))
但是我只访问每个元组的第一个元素,然后只返回其值的键。
答案 0 :(得分:0)
key, _ = min(DATE_FORMAT_CODES.items(), key=lambda item: abs(len(item[1][0]) - len(date_string)))