【发布时间】:2019-08-27 16:47:43
【问题描述】:
所以,我正在使用python做一个练习,我尝试使用终端逐步了解发生了什么,但我没有。
我主要想了解为什么条件只返回索引 0。
看'casino' in [Casinoville].lower() 不是一回事吗?
运动:
- 获取文档列表(每个文档都是一个字符串)和一个关键字。 将索引值列表返回到包含关键字的所有文档的原始列表中。
运动解决方案
def word_search(documents, keyword):
indices = []
for i, doc in enumerate(documents):
tokens = doc.split()
normalized = [token.rstrip('.,').lower() for token in tokens]
if keyword.lower() in normalized:
indices.append(i)
return indices
我的解决方案
def word_search(documents, keyword):
return [i for i, word in enumerate(doc_list) if keyword.lower() in word.rstrip('.,').lower()]
运行
>>> doc_list = ["The Learn Python Challenge Casino.", "They bought a car", "Casinoville"]
预期输出
>>> word_search(doc_list, 'casino')
>>> [0]
实际输出
>>> word_search(doc_list, 'casino')
>>> [0, 2]
【问题讨论】:
-
提示:将这两行输入到解释器中:
'casino' in 'casinoville'和'casino' in ['casinoville']。两者有什么区别? -
@glibdud 是关于我很困惑为什么
'casino' in 'casinoville'返回True和'casino' in ['casinoville']返回False,为什么会这样? -
documentation 始终是您尝试了解语言功能如何工作的好起点。请参阅本节的前两段。
标签: python-3.x string