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

查找特定的关键字并在Python中计算它,python,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())

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

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

让我们看看input中i的
行。这里,
input
是一个字符串,它是Python中的一个字符串。这意味着您可以执行以下操作:

for char in 'string':
    print(char)
# 's', 't', 'r', 'i', 'n', 'g'
相反,您可以使用该方法

如上面的评论所述,如果输入“我想要一个苹果”并带有关键字“an”,则
str.count
将找到两个匹配项。如果只希望出现一次,则需要拆分输入,然后比较每个单词是否相等

sum(1 for word in input.split() if word == keyword)

让我们看看input中i的
行。这里,
input
是一个字符串,它是Python中的一个字符串。这意味着您可以执行以下操作:

for char in 'string':
    print(char)
# 's', 't', 'r', 'i', 'n', 'g'
相反,您可以使用该方法

如上面的评论所述,如果输入“我想要一个苹果”并带有关键字“an”,则
str.count
将找到两个匹配项。如果只希望出现一次,则需要拆分输入,然后比较每个单词是否相等

sum(1 for word in input.split() if word == keyword)

input
是一个字符串,因此对其进行迭代将分别给出每个字符。您可能打算拆分它:

for i in input.split():
请注意,对于
循环,使用列表理解可能比使用
更优雅:

count = len([x for x in input.split() if x in keyword])

input
是一个字符串,因此对其进行迭代将分别给出每个字符。您可能打算拆分它:

for i in input.split():
请注意,对于
循环,使用列表理解可能比使用
更优雅:

count = len([x for x in input.split() if x in keyword])

您需要将语句转换为列表,如下所示:

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)

这将允许循环正确识别所需的项目。

您需要将语句转换为列表,如下所示:

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)

这将允许循环正确识别所需的项目。

提示:如果将
print i
放入循环中,您认为输出会是什么?试试看,看是否符合你的预测。我得到了这个,我很清楚。您正在遍历字符串:每个字符,而不是每个单词。还记得你是怎么找到单词数的吗?做一些类似于遍历每个单词的操作。提示:如果将
print i
放入循环中,您认为输出会是什么?试试看,看是否符合你的预测。我得到了这个,我很清楚。您正在遍历字符串:每个字符,而不是每个单词。还记得你是怎么找到单词数的吗?请注意,i
中的
关键字和
x==关键字方法不同。考虑输入“FieldCuk熄灭”和关键字“Fire”,前者返回2个计数,后者返回1。注意<<代码>关键字在i<代码>和<代码> x==关键字< /代码>方法是不相同的。考虑输入“FixCukes熄灭”和关键字“Fire”,前者返回2个计数,后者返回1个。