我必须编写一个程序,该程序采用前缀和单词列表来返回列表中每个单词的包含 True
或 False
的列表,具体取决于是否单词是否以前缀开头。
例如 starts_with('bob', ['bobastic', 'bobo', 'fandango']
应返回[True, True, False]
。
这就是我所拥有的。
def starts_with(prefix, wordlist):
lop= len(prefix)
if lop==0:
return True
elif prefix[0] != [[x[0]] for x in wordlist]:
return False
else:
wordrest = [x[1:] for x in wordlist]
prefix_list = [starts_with(prefix[1:], wordrest)]
return prefix_list
print(starts_with('bob', ['bobo', 'bobastic']))
这个函数表现得很有趣,它检查“bob”和“bobastic”是否像“bob”一样以“b”开头,但不是进入递归情况,而是返回 False。
我不需要解决方案,如果有人能向我指出发生了什么,我将不胜感激。
最佳答案
你的问题就在这里
elif prefix[0] != [[x[0]] for x in wordlist]:
return False
在您的示例中,其计算结果为:
'b' != [['b'],['b']]
女巫永远是真实的
关于Python 3.4作业,我只想要一个提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32809789/