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不是逐字符串地读取它,而是将它作为一个单一的单词来检查。
其次,为了弥补包含谓词的句子的重新定义,我想让该函数只检查给定句子的第一个单词。 我怎么能让程序只检查句子的第一个单词?
我可以参考哪些推荐或参考?
答案 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