【发布时间】:2016-08-18 07:54:40
【问题描述】:
我收到以下消息:
msg = "Cowlishaw Street & Athllon Drive, Greenway now free of obstruction."
我想将“Drive”更改为“Dr”或将“Street”更改为“St”等内容
expected_msg = "Cowlishaw St and Athllon Dr Greenway now free of obstruction"
我还有一个“转换功能”
如果列表中有这样的单词,我如何检查列表。如果是这样,请使用“转换”功能对其进行更改。 “conversion”是一个字典,以“Drive”等单词为键,值为“Dr”
这就是我所做的
def convert_message(msg, conversion):
msg = msg.translate({ord(i): None for i in ".,"})
tokens = msg.strip().split(" ")
for x in msg:
if x in keys (conversion):
return " ".join(tokens)
【问题讨论】:
-
您能否尝试使示例代码的格式正确?
-
你不能只使用
msg.replace("Drive","Dr")等吗? -
for "Drive" in msg根本不是正确的 Python。既然你有字典,你应该把它包含在问题中。 -
您可能想查看 nltk 来标记您的字符串,顺便说一句。处理标点符号等等。
-
@Chris_Rands 是的,我可以这样做。但我的导师说这是不允许的,因为它有点硬编码。我们要做的是遍历字符串中的消息。然后如果我们在字典“conversion”中找到也是键的单词,那么我们转换那些单词,它们是该转换字典中的对应值。
标签: python string dictionary