我正在嘗試編寫一個函數過程(s,d),用字典替換字符串中的縮寫和完整含義。其中s是字符串輸入,d是字典。例如:字符串替換字典,與標點符號併發
>>>d = {'ASAP':'as soon as possible'}
>>>s = "I will do this ASAP. Regards, X"
>>>process(s,d)
>>>"I will do this as soon as possible. Regards, X"
我已經嘗試使用split函數來分隔字符串並將每個部分與字典進行比較。
def process(s):
return ''.join(d[ch] if ch in d else ch for ch in s)
但是,它返回同樣的確切字符串。我懷疑代碼不起作用,因爲原始字符串中的ASAP完全停止。如果是這樣,我該如何忽略標點並儘快更換?
查看我對Vaughn Cato的評論,感謝剛剛迭代d的弱點。或者,由於您使用的是正則表達式,因此您可以跳過該類並將代碼更改爲'ret = re.sub(r'\ b'+ key + r'\ b',d [key],ret)',這樣你不會無意中更換較大的縮寫詞。 – PaulMcG