-2

我正在用 python 编写代码来获取用户的智能输入,为此我使用了词典。我正在使用不同的函数将词典元组保存在列表中,但列表没有像我预期的那样更新。

我的代码是:

directions = ['north', 'south', 'west', 'east', 'forward', 'down', 'up', 'left',      'right', 'back', 'n', 'w', 's', 'e']
verbs = ['go', 'stop', 'eat', 'attack', 'kill']
nouns = ['Jack', 'John', 'Keshav', 'Saket', 'door', 'princess', 'bat', 'bear']
StopWords = ['the', 'in', 'is', 'of', 'from', 'at', 'it']

GetName = raw_input("Enter your name\t")
word_definition = []

def function(GetName,word_definition):
    words = GetName.split()


    for i in words:
        if i in directions:
            word_definition.append(('Direction',i))
        elif i in verbs:
            word_definition.append(('Verb',i))
        elif i in nouns:
            word_definition.append(('Noun',i))
        elif i in StopWords:
            word_definition.append(('Stop Word',i))
        else:
            word_definition.append(('Unknown Type',i))
    return word_definition

word_definition = (GetName, word_definition)

print word_definition

我输入“我的名字是 Keshav”

我希望列表更新为 [('Unknown Type', 'My'), ('Unknown Type', 'name'), ('Stop Word', 'is'), ('Noun', 'Keshav' )]

相反,输出如下:

('我的名字是 Keshav',[])

请指出可能的错误。任何帮助将不胜感激。

4

1 回答 1

2

您需要调用函数:

word_definition = (GetName, word_definition)

需要改为:

word_definition = function(GetName, word_definition)
于 2014-04-07T20:19:16.410 回答