【问题标题】:python how to check and replace words in string?python如何检查和替换字符串中的单词?
【发布时间】:2013-04-15 02:15:11
【问题描述】:

我是 python 新手,我正在尝试创建一个函数,该函数能够检测字符串是否包含“I”、“I'm”、“My”、“Was”、“Our” , “me” 将其替换为“You”、“You're”、“Your”、“Were”、“Your”和“You”,如果它没有以任何标点符号结尾,则在末尾添加一个问号。到目前为止我有代码

if ' ' in statement and statement[-1].isalpha() is True:
       response = statement
       response = response + "?"

       return response

但我不确定如何使函数搜索这些单词并替换为它们的反义词。例如,如果声明是“我的狗说我很高兴”,它的响应应该是“你的狗说你很高兴?”

谢谢

【问题讨论】:

    标签: python


    【解决方案1】:

    创建一个字典映射并对其进行迭代,就像这样

    d = {"I": "You", "I'm": "You're".....}
    for k,v in d.iteritems():
        statement = statement.replace(k, v)
    

    【讨论】:

    • 对不起,我是 python 新手,但是什么是 k,v
    • d.iteritems() 方法 (dict.iteritems) 在 Python 3.x 中不再可用。我没时间找替代品,抱歉:(
    • 有没有办法让 d = {"I" : "You","You" : "I"} 不相互抵消?
    【解决方案2】:

    查看 python 的 replace 函数,它在字符串中替换...

    例如

    x = "My dog said I'm happy"
    x.replace("My", "Your") # "Your dog said I'm happy"
    

    你可以创建一个old列表作为要替换的单词列表和一个列表new作为替换的列表,然后依次替换。

    请注意,您应该在较短的单词之前替换较长的单词。

    例如,如果您将上面的“我”替换为“您”,您将得到“您的狗说您很高兴”。因此,您应该在“I”之前替换“I'm”

    【讨论】:

      【解决方案3】:

      这已经被问过manymany 次了。您需要使用 Python 的 Standard Library 中的 replace 方法的一些变体。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-01
        • 2016-01-29
        • 1970-01-01
        • 2012-09-13
        • 2019-12-30
        • 2012-09-14
        • 2020-06-03
        相关资源
        最近更新 更多