Whe*_*-pi 0 python methods tuples
direction = ['north', 'south', 'east', 'west', 'down', 'up', 'left', 'right', 'back']
class Lexicon(object):
def scan(self, sentence):
self.sentence = sentence
self.words = self.sentence.split()
self.term = []
for word in self.words:
if word in direction:
part = ('direction','%s' % word)
self.term.append(word)
return self.term
lexicon = Lexicon()
Run Code Online (Sandbox Code Playgroud)
当我进入时,lexicon.scan('north south east')
我期待着回归给我[('direction','north'),('direction','south'),('direction','east')]
.相反,我得到了['north']
.这是我希望程序整体上做的事情.
这个:
self.term.append(word)
Run Code Online (Sandbox Code Playgroud)
应该这样:
self.term.append(part)
Run Code Online (Sandbox Code Playgroud)
你丢弃part
而不是添加它self.term
.
而且,你是return
在循环内而不是在循环之后 - 你需要让你的return
陈述变得一致.这是工作代码:
for word in self.words:
if word in direction:
part = ('direction','%s' % word)
self.term.append(part)
return self.term
Run Code Online (Sandbox Code Playgroud)
输出:
[('direction', 'north'), ('direction', 'south'), ('direction', 'east')]
Run Code Online (Sandbox Code Playgroud)