Python_Checking字符串以Word为单位

时间:2017-07-13 07:59:47

标签: python string words

def Interpretation_is(sentence):
     #parameter is a sentence#
     if  'there' in sentence:
          print(sentence.replace('is','exists'))
     if 'he' in sentence:
          print(sentence.replace('is','equal to'))

Interpretation_is('there is a woman')
Interpretation_is('he is a boy')

我正在努力弥补一个简单句子的改述。

在我的代码上方看到,它为第一个输入打印了两个重新输入('有一个女人')因为在单词'那里'已经存在'他'作为其中的一部分。

首先,我想让python不是逐字符串地读取它,而是将它作为一个单一的单词来检查。

其次,为了弥补包含谓词的句子的重新定义,我想让该函数只检查给定句子的第一个单词。 我怎么能让程序只检查句子的第一个单词?

我可以参考哪些推荐或参考?

3 个答案:

答案 0 :(得分:1)

尝试使用.split()将您的句子读作单词列表,而不是每个字符。

def Interpretation_is(sentence):
    # parameter is a sentence#
    if 'there' in sentence.split():
        print(sentence.replace('is', 'exists'))
    if 'he' in sentence.split():
        print(sentence.replace('is', 'equal to'))

Interpretation_is('there is a woman')
Interpretation_is('he is a boy')

答案 1 :(得分:0)

def Interpretation_is(sentence):
    word_list = sentence.split()

    if  'there' in sentence.split(' '):
        for n, ch in enumerate(word_list):
            if ch == "is":
                word_list[n] = "exists"
    if 'he' in sentence.split(' '):
        for n, ch in enumerate(word_list):
            if ch == "is":
                word_list[n] = "equal to"
    return " ".join(word_list)

print(Interpretation_is('there is a woman'))
print(Interpretation_is('he is a boy'))

答案 2 :(得分:0)

维护dict键以替换..

db = { "is" :{"there" : 'exists', 'he' : 'equal to'},
       "other_key_to_replace" : {"val1" : "str1", "val2": "str2"} }

拆分字符串并获取第一个单词,检查声明的dict中是否存在 如果存在则替换它。

<强>编辑:

add_space = lambda given : space + given + space
def Interpretation_is2( sentence, key_to_replace="is"):
    val = db[key_to_replace].get(sentence.split()[0], None)
    if val:
        sentence = sentence.replace(add_space(key_to_replace), add_space(val))
    print sentence

要仅替换第一次出现,请使用以下代码:

def Interpretation_is3( sentence, key_to_replace="is"):
    val = db[key_to_replace].get(sentence.split()[0], None)
    if val:
        sentence = sentence.replace(key_to_replace, val, 1)
    print sentence