我试图找到字符串中有多少特定关键字,但输出与逻辑
不相似input = raw_input('Enter the statement:') //I love u
keyword = raw_input('Enter the search keyword:') //love
count = 0
for i in input:
if keyword in i:
count = count + 1
print count
print len(input.split())
期望
1
3
现实
0
3
答案 0 :(得分:3)
input
是一个字符串,因此迭代它会分别为每个字符提供。你可能想split
:
for i in input.split():
请注意,使用列表推导可能比for
循环更优雅:
count = len([x for x in input.split() if x in keyword])
答案 1 :(得分:1)
让我们看一下for i in input
行。这里,input
是一个字符串,它是Python中的iterable。这意味着您可以执行以下操作:
for char in 'string':
print(char)
# 's', 't', 'r', 'i', 'n', 'g'
相反,您可以使用str.count
方法。
input.count(keyword)
如上面的评论中所述,如果您输入“我想要一个苹果”并带有关键字“an”,str.count
会发现两次出现。如果您只想要一次出现,则需要拆分输入,然后比较每个单词是否相等。
sum(1 for word in input.split() if word == keyword)
答案 2 :(得分:1)
您需要将语句转换为列表,如下所示:
input = raw_input('Enter the statement:').split() //I love u
keyword = raw_input('Enter the search keyword:') //love
count = 0
for i in input:
if keyword in i:
count = count + 1
print count
print len(input)
这将允许循环正确识别您想要的项目。