序数替换

发布于 2021-01-29 19:34:56

我目前正在寻找用适当的序数表示法(第一,第二,第三)替换第一,第二,第三等单词的方法。我上周一直在搜寻Google,但没有找到NLTK的任何有用的标准工具或功能。

那么,有没有或者我应该手动编写一些正则表达式?

感谢您的任何建议

关注者
0
被浏览
64
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    这是Gareth在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']
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看