Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python count String函数-从字符串或行中精确计算单词的出现次数_Python_Python 3.x_String_Count - Fatal编程技术网

Python count String函数-从字符串或行中精确计算单词的出现次数

Python count String函数-从字符串或行中精确计算单词的出现次数,python,python-3.x,string,count,Python,Python 3.x,String,Count,我想从字符串中计算单词的出现次数。但我只想计算确切的发生次数,而不是从子字符串开始计算 例如,如果我要计算的字符串是->“This is good”,如果我要计算的单词的出现次数是“is”,我只想得到的出现次数是1而不是2。但是我的代码是从这个词算起的。我怎样才能做到这一点。对不起,我的英语很差 text=“这很好” text.count(“is”) >>> 2 text=“这很好” text.count(“is”) >>> 1 您首先必须通过将字符串拆分为空格来获取单个单词: words =

我想从字符串中计算单词的出现次数。但我只想计算确切的发生次数,而不是从子字符串开始计算

例如,如果我要计算的字符串是->“This is good”,如果我要计算的单词的出现次数是“is”,我只想得到的出现次数是1而不是2。但是我的代码是从这个词算起的。我怎样才能做到这一点。对不起,我的英语很差

text=“这很好”
text.count(“is”)
>>> 2
text=“这很好”
text.count(“is”)
>>> 1

您首先必须通过将字符串拆分为空格来获取单个单词:

words = text.split()
现在,对列表中单词等于要检查的字符串的所有项目求和:

sum(char for char in words if char == string_to_check)
在函数中,可以获得以下内容:

def count(string, check):
    return sum(char for char in string.split() if char == check)

如果你想使用这个方法,你可以插入空格(如果你总是在搜索这个词)

输出:

一,

更好的解决方案是:

text = "This is good"
num = text.split().count('is')
print (num)
输出:

一,

要使此计数器不区分大小写,例如在本例中:

text = "Is this ok, it is just example is"
num = text.lower().split().count('is')
print (num)
输出:

三,

方法lower() 基于大小写的字符已被小写

语法:

split()方法将字符串拆分为列表

您可以指定分隔符,默认分隔符为任何空格

注意:指定max时,列表将包含指定的 元素数加一

语法:


您可以使用正则表达式,它将帮助您查找用任何单词边界划分的子字符串:

import re

text = "This is good is\tis\t"
occurences = sum(1 for _ in re.finditer(r"\bis\b", text))

text.count(“is”)
您可以尝试以下操作:
text.split(”).count(“is”)
“保持原样”
将返回0
“它是解决方案吗?”
在这种情况下,它可能是“它是解决方案吗?”,secntence以大写字母“is”开头,与“is”不同。这都是OP没有定义的特殊情况@Olvinroghttit是常规情况,没有什么特殊。如果他计算“是”或“是”或两者都有,那就不同了
str.lower()
string.split(separator, max)
import re

text = "This is good is\tis\t"
occurences = sum(1 for _ in re.finditer(r"\bis\b", text))