嗨,我想為代碼提供文本,并在 python 中將每個基數更改為序數
Input :
str = 'I was born in September 22 and I am 1 in swimming'
我想將其更改為:
I was born in September 22th and I am 1st in swimming
我怎樣才能以最簡單的方式做到這一點?
uj5u.com熱心網友回復:
撰寫一個函式來生成序數,例如這個取自這個優秀答案的函式:
def make_ordinal(match):
n = match.group(0)
n = int(n)
suffix = ['th', 'st', 'nd', 'rd', 'th'][min(n % 10, 4)]
if 11 <= (n % 100) <= 13:
suffix = 'th'
return str(n) suffix
并使用正則運算式進行替換,使用re.sub:
import re
s = "I was born in September 22 and I am 1 in swimming"
re.sub(r"\d ", make_ordinal, s)
# 'I was born in September 22nd and I am 1st in swimming'
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/323633.html
