每次在另一个字符串中找到一个字符串时Python计数
我试图枚举程序在较长文本中找到特定字符串的时间,但我卡住了,程序显示的是响应字符串的长度,而不是响应中出现的时间每次在另一个字符串中找到一个字符串时Python计数,python,Python,我试图枚举程序在较长文本中找到特定字符串的时间,但我卡住了,程序显示的是响应字符串的长度,而不是响应中出现的时间ultrias。代码如下: ultrias = "am 17" response = "Hi i am 17, did you know I am 17" num = 0 for ultrias in response: num += 1 print (num) 您可以使用: 您可以使用: Python字符串有一个内置的str.count()方法可以做到这一点: ultria
ultrias
。代码如下:
ultrias = "am 17"
response = "Hi i am 17, did you know I am 17"
num = 0
for ultrias in response:
num += 1
print (num)
您可以使用:
您可以使用:
Python字符串有一个内置的
str.count()
方法可以做到这一点:
ultrias = "am 17"
response = "Hi i am 17, did you know I am 17"
print(response.count(ultrias))
输出
2
如果不允许您使用str.count()
方法,您可以执行以下操作:
ultrias = "am 17"
response = "Hi i am 17, did you know I am 17"
count = 0
data = response[:]
while True:
start = data.find(ultrias)
if start < 0:
break
data = data[start + len(ultrias):]
count += 1
print(count)
ultrias=“am 17”
回答=“你好,我17岁,你知道我17岁吗”
计数=0
数据=响应[:]
尽管如此:
开始=数据。查找(ultrias)
如果开始<0:
打破
数据=数据[start+len(ultrias):]
计数+=1
打印(计数)
但我不推荐
这两种算法都不能处理重叠匹配,但第二个示例可以很容易地修改为:
count = 0
data = response[:]
while True:
start = data.find(ultrias)
if start < 0:
break
data = data[start + 1:]
count += 1
print(count)
count=0
数据=响应[:]
尽管如此:
开始=数据。查找(ultrias)
如果开始<0:
打破
数据=数据[开始+1:]
计数+=1
打印(计数)
Python字符串有一个内置的str.count()
方法可以做到这一点:
ultrias = "am 17"
response = "Hi i am 17, did you know I am 17"
print(response.count(ultrias))
输出
2
如果不允许您使用str.count()
方法,您可以执行以下操作:
ultrias = "am 17"
response = "Hi i am 17, did you know I am 17"
count = 0
data = response[:]
while True:
start = data.find(ultrias)
if start < 0:
break
data = data[start + len(ultrias):]
count += 1
print(count)
ultrias=“am 17”
回答=“你好,我17岁,你知道我17岁吗”
计数=0
数据=响应[:]
尽管如此:
开始=数据。查找(ultrias)
如果开始<0:
打破
数据=数据[start+len(ultrias):]
计数+=1
打印(计数)
但我不推荐
这两种算法都不能处理重叠匹配,但第二个示例可以很容易地修改为:
count = 0
data = response[:]
while True:
start = data.find(ultrias)
if start < 0:
break
data = data[start + 1:]
count += 1
print(count)
count=0
数据=响应[:]
尽管如此:
开始=数据。查找(ultrias)
如果开始<0:
打破
数据=数据[开始+1:]
计数+=1
打印(计数)
使用string.count(string)获取所需内容
>>> find = "am 17"
>>> string = "Hi I am 17, did you know I am 17"
>>> string.count(find)
2
使用string.count(string)获取所需内容
>>> find = "am 17"
>>> string = "Hi I am 17, did you know I am 17"
>>> string.count(find)
2
通过
re
模块
>>> ultrias = "am 17"
>>> response = "Hi i am 17, did you know I am 17"
>>> print(len(re.findall(ultrias, response)))
2
通过
re
模块
>>> ultrias = "am 17"
>>> response = "Hi i am 17, did you know I am 17"
>>> print(len(re.findall(ultrias, response)))
2
其他人用几种不同的方法来满足您的需求,但是,没有人解释为什么代码的输出是输入字符串的长度
for
循环有一个循环变量,该变量从正在迭代的对象中赋值。在对象是字符串的情况下,for循环将按顺序在字符串中的每个字符上迭代,将该字符分配给循环变量,例如
>>> for i in "Hi there":
... print i
...
H
i
t
h
e
r
e
因此,您可以看到,i
依次分配了字符串“Hi there”中的一个字符。代码中也发生了同样的情况:ultrias
是循环变量,正在从字符串中分配连续字符“嗨,我17岁了,你知道我17岁吗”
输出将是:
H
i
i
a
m
1
7
.
.
.
3
还请注意,循环终止后,
ultrias
的值是循环分配给它的最后一个值-不是“am 17”
,而是“7”
,其他人用几种不同的方法来满足您的要求,但是,没有人解释为什么代码的输出是输入字符串的长度
for
循环有一个循环变量,该变量从正在迭代的对象中赋值。在对象是字符串的情况下,for循环将按顺序在字符串中的每个字符上迭代,将该字符分配给循环变量,例如
>>> for i in "Hi there":
... print i
...
H
i
t
h
e
r
e
因此,您可以看到,i
依次分配了字符串“Hi there”中的一个字符。代码中也发生了同样的情况:ultrias
是循环变量,正在从字符串中分配连续字符“嗨,我17岁了,你知道我17岁吗”
输出将是:
H
i
i
a
m
1
7
.
.
.
3
还请注意,循环终止后,ultrias
的值是循环分配给它的最后一个值-不是“am 17”
,而是“7”
您需要计算重叠出现的次数吗?说出17171
中171
的时间是多少?一个或两个?您需要计算重叠发生的次数吗?说出17171
中171
的时间是多少?一两个?