我正在尝试编写一个函数过程(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