查找特定关键字并在Python中计算

时间:2016-03-21 17:34:30

标签: python

我试图找到字符串中有多少特定关键字,但输出与逻辑

不相似
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

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)

这将允许循环正确识别您想要的项目。