最近YYYY年mm月というデータを「YYYYmm」に持ち直す際に、
1~9月だとそのまま結合すると
2022年1月-> 20221
となり、202201のようなものがいいんだよな〜っていうことがあると思います。
そこで、0 paddingというものを知りました。
知る前はゴリ押しでif文とかで作ってたんですが、先輩のレビュー時にアドバイスというか教えていただき、1行であたかも簡単にできることを知りました。
(今考えれば、だれでもこういうデータの変換をするので、そういう関数くらいあるよね、とは思うんですが、そのときは「変換せねば!」という思いでいっぱいでした。)
組み込み関数formatで一撃
結論はこれでした。
import re
wareki_regex = "(\d*)年(\d*)月"
year_month = "2022年3月"
m = re.match(wareki_regex, year_month)
year, month = m.group(1), int(m.group(2))
print(f"year={year}, month={month}")
print(format(month, '02'))
# これ
print(f"0 padding month -> {format(month, '02')}")
year_0padding_month = year + str(format(month, "02"))
print(year_0padding_month)
>>>
year=2022, month=3
03
0 padding month -> 03
202203
大体、format(value, '希望するformat')
という感じなんですが、valueは特に記載がないものの、intの方が好ましい感じでした。(実際文字列のまま入れるとエラー出ました。。)
参考元:http://dalmore.blog7.fc2.com/blog-entry-172.html
終わり
これだけなんですが、実際に「こういう関数って当たるまで知らずに過ごしちゃうよね」って思った案件だったので、自分の復習も兼ねて書きました!