2017-11-02 12 views
0

この辞書の日付範囲を最も近づけるにはどうすればよいでしょうか?私は最も近い日付形式を検出し、その鍵を返します方法をしたい日付文字列から最も近い日付形式を検出していますか?

date_string = '201704256' 

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'), 
} 

だから私は値を持って言うことができます。したがって、この場合は、'102'が返されます。

私たちは、日付文字列が正しい形式で常にあり、そしてそれは常に上で指定のフォーマットに準拠することを仮定することができます。つまり、可能なすべての入力はCC、次にYY、MMなどで始まります。唯一の問題は入力値の長さです。

私はこのような何かを試しています

min(DATE_FORMAT_CODES.values(), key=lambda x:abs(x - len(date_string))) 

しかし、私はトラブル各タプルの最初の要素だけにアクセスして、その値のキーだけを返すがあります。

答えて

0
key, _ = min(DATE_FORMAT_CODES.items(), key=lambda item: abs(len(item[1][0]) - len(date_string))) 
+1

このコードで質問に答えることができますが、このコードが質問に答える理由と理由についての追加の文脈を提供することで、長期的な価値が向上します。 –

関連する問題