log
を高校で習ったときにlog
っていつ使うねん!って思ってたら使いどきあったのでメモメモ。
import math
list = [1,2,3,4,5,6,7,8,9,10,11]
number_of_val = len(list)
number_of_padding_zero = math.ceil(math.log10(number_of_val))
format_pattern = '{:0'+ str(number_of_padding_zero) +'d}'
for i,val in enumerate(list):
serial_number = format_pattern.format(i)
print(serial_number)
実行結果:
00
01
02
03
04
05
06
07
08
09
10
連番でファイル出力するときに0で穴埋め(ゼロパディング)するということを想定。
テスト用なのでコード中のlist
には数字入ってますが、ファイルパスとかが入ってると思ってください。
出力ファイル数を数えて、log10をとって切り上げ。1
からとかではなく0
から出力するといい感じになる。
format_pattern = '{:0'+ str(number_of_padding_zero) +'d}'
↑このコード、絶対ダメな気がするんだけどとりあえず動くからいいやってことで。
何かいい感じの書き方とかがあったらコメントで教えて下さい。
join
メソッドとか使えよって思う方もいるだろうけど、
個人的に+
でつなぐ表記が大体の言語で共通して書けるので好きってだけです。
そういえばlog10って常用対数って言うんだったね。めっちゃ使うってことよね。
ふと調べてみたら常用対数をとって桁数数えるのふつうのコトだったわ。
いやでも、実際に使う機会ないと「桁数わかってどうするのか?」ってなるしさ。
あと、そもそも桁数を常用対数使ったら求められるコト完全に頭から抜けてたんだけど、
「対数使ったらいい感じになりそう!」ってなんとなく思って気づいたんだ。
むしろ褒めて()