Python词典中两词短语的扫描

2024-06-10 04:21:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用Python字典对象来帮助将输入字符串转换为其他单词或短语。我已经成功地从输入中翻译出单个单词,但我似乎不知道如何翻译多个单词短语。在

示例:

sentence = input("Please enter a sentence: ")
myDict = {"hello": "hi","mean adult":"grumpy elder", ...ect}

如果用户输入hello mean adult作为输入,我如何返回hi grumpy elder?在


Tags: 对象字符串示例helloinput字典himean
3条回答

这将检查每个单词以及两个单词的短语,使用当前单词之前和之后的单词来生成短语:

myDict = {"hello": "hi",
          "fast car": "quick ride"}
sentence = input("Please enter a sentence: ")
words = sentence.split()
for i, word in enumerate(words):
    if word in myDict:
        print myDict.get(word)
        continue
    if i:
        phrase = ' '.join([words[i-1], word])
        if phrase1 in myDict:
            print myDict.get(phrase)
            continue
    if i < len(words)-1:
        phrase = ' '.join([word, words[i+1])
        if phrase in myDict:
            print myDict.get(phrase)
            continue

"fast car"是字典的一个键,因此如果使用从中返回的键,则可以提取该值。在

如果您直接从用户那里获取输入并使用它来引用字典,get更安全,因为它允许您在键不存在的情况下提供默认值。在

print(myDict.get(sentence, "Phrase not found"))

既然您已经更清楚地说明了您的需求,现在最困难的部分是分割;get没有改变。如果你能保证句子的顺序和结构(也就是说,它的结构总是让我们有一个有1个单词的短语,然后是一个有2个单词的短语),那么只在第一次出现空格字符时拆分。在

^{pr2}$

我把更复杂的分割要求留给读者作为练习。一个提示是使用myDict的键来确定句子中存在哪些有效标记。在

和你平常一样。在

translation = myDict['fast car']

解决特定问题的方法如下所示,maxlen是字典中单个短语中的最大单词数。在

^{pr2}$

给定句子hello this is a nice fast car,它输出hi this is a sweet quick ride

相关问题 更多 >