我试图在Python 2.6中使用re在一系列更大的数字中找到每10个数字系列的数字.
我很容易就能抓住没有重叠的比赛,但我想要数字系列中的每场比赛.例如.
在"123456789123456789"
我应该得到以下列表:
[1234567891,2345678912,3456789123,4567891234,5678912345,6789123456,7891234567,8912345678,9123456789]
Run Code Online (Sandbox Code Playgroud)
我发现了对"前瞻"的引用,但我看过的例子只显示了数字对而不是更大的分组,我无法将它们转换为超出两位数.
计算给定字符串出现次数的最佳方法是什么,包括python中的重叠?这是最明显的方式:
def function(string, str_to_search_for):
count = 0
for x in xrange(len(string) - len(str_to_search_for) + 1):
if string[x:x+len(str_to_search_for)] == str_to_search_for:
count += 1
return count
function('1011101111','11')
returns 5
Run Code Online (Sandbox Code Playgroud)
?
或者在python中有更好的方法吗?
我想计算像'aa'这样的字符串出现在'aaa'(或'aaaa')中的次数.
最明显的代码给出了错误的(或至少不是直观的)答案:
'aaa'.count('aa')
1 # should be 2
'aaaa'.count('aa')
2 # should be 3
Run Code Online (Sandbox Code Playgroud)
有没有人有一个简单的方法来解决这个问题?
说我有string = 'hannahannahskdjhannahannah',我想计算字符串hannah出现的次数,我不能简单地使用count,因为在每种情况下只计算子字符串一次.
IE浏览器.
我期待返回,4但只有2当我在pyCharm中运行时返回string.count('hannah')
'ababa'中有两次出现'aba'(第0个索引和第2个索引):
myString = 'ababa'
print(myString.count('aba'))
Run Code Online (Sandbox Code Playgroud)
然而,这段代码输出的值为:1
我知道这个问题看起来很简单,但答案不应该是2吗?
如果没有,那么计数功能是不是真的没有做它应该做的事情?
有一个简单的替代方案吗?
python ×7
string ×3
regex ×2
count ×1
function ×1
overlapping ×1
pycharm ×1
python-2.7 ×1
search ×1