1. ホーム
  2. python

序数置換

2023-08-27 19:25:03

質問内容

私は現在、first, second, third,...のような単語を適切な序数表現(1st, 2nd, 3rd) に置き換える方法を探しています。 私は先週からググっていますが、便利な標準ツールやNLTKからの関数は見つかりませんでした。

だから、何かあるのでしょうか、それとも手動でいくつかの正規表現を書くべきなのでしょうか?

アドバイスをありがとうございました。

どのように解決するのですか?

以下は、以下のサイトから引用した簡潔な解決策です。 Gareth on codegolf :

ordinal = lambda n: "%d%s" % (n,"tsnrhtdd"[(n//10%10!=1)*(n%10<4)*n%10::4])

任意の数で動作します。

print([ordinal(n) for n in range(1,32)])

['1st', '2nd', '3rd', '4th', '5th', '6th', '7th', '8th', '9th', '10th',
 '11th', '12th', '13th', '14th', '15th', '16th', '17th', '18th', '19th',
 '20th', '21st', '22nd', '23rd', '24th', '25th', '26th', '27th', '28th',
 '29th', '30th', '31st']