Sep 5, 2008

Pythonで序数を返す関数

1st. 2nd. 3rd, 4th, 5th ....と序数を表示する必要があったのですが、pythonなら

 def order_n(i): return {1:"1st", 2:"2nd", 3:"3rd"}.get(i) or "%dth"%i

の一行で書けますね。辞書型のgetメソッドは、辞書にない時Noneを返すので、そのときは"%dth"を返せばいいわけです。こういうのを一行でさっと書けるので、pythonは癖になります。

No comments: