2024-09-28 03:22:59 发布
网友
s = "abobabobabob" total = 0 for i in range(len(s)): if s[i-1 : i+2] == 'bob': total += 1 print ('times bob occurs is:' + str(total))
有没有更简单的方法来更改if语句?另外,有人能告诉我i-1 : i+2做什么吗?你知道吗
if
i-1 : i+2
我写这段代码是为了找到“bob”的出现,我被困了一段时间。你知道吗
if语句查看的是s的子集。为了回答您的另一个问题,这里有一个比if语句更简单的方法:
这是python的正则表达式库
import re
嵌入式语句搜索所有不重叠的'bob'实例,并返回一个列表,每个匹配项都作为一个元素;outer语句只计算列表中的元素数
len(re.findall('bob',s))
如果s[i-1:i+2]=“bob”正在检查当前索引-1到当前索引+2是否为“bob”。这会引起问题,因为我从0开始,i-1是列表的最后一个元素
尝试:
s = "abobabobabob" total = 0 for i in range(1,len(s)): if s[i-1 : i+2] == 'bob': total += 1
两条线有更好的方法
s= "abobabobabob" print sum( s[i:i+3] =='bob' for i in range(len(s)-2) ) 3
下面的代码搜索每个'bob'子字符串的起始索引,并将该值添加到数组中。total变量只返回该数组中值的计数。你知道吗
'bob'
total
作为一行:
total = 0 s = "abobabobabob" total = len([i for i in range(len(s)) if s.find('bob', i) == i]) print('times bob occurs is: ' + str(total))
打印:
times bob occurs is: 3
--如果您想修改for循环,这里有一个替代方法:
for
total = 0 s = "abobabobabob" for i in range(len(s)): if (s.find('bob', i) == i): total += 1 print('times bob occurs is: ' + str(total))
if语句查看的是s的子集。为了回答您的另一个问题,这里有一个比if语句更简单的方法:
这是python的正则表达式库
嵌入式语句搜索所有不重叠的'bob'实例,并返回一个列表,每个匹配项都作为一个元素;outer语句只计算列表中的元素数
如果s[i-1:i+2]=“bob”正在检查当前索引-1到当前索引+2是否为“bob”。这会引起问题,因为我从0开始,i-1是列表的最后一个元素
尝试:
两条线有更好的方法
下面的代码搜索每个
'bob'
子字符串的起始索引,并将该值添加到数组中。total
变量只返回该数组中值的计数。你知道吗作为一行:
打印:
--如果您想修改
for
循环,这里有一个替代方法:打印:
相关问题 更多 >
编程相关推荐