Python有一个字符串包含多少个子串方法,允许重叠?

时间:2014-08-11 14:52:33

标签: string python-2.7

我想计算一个长字符串包含多少个子字符串,如何在python中完成?

"12212"

包含2x "12"

如何获取计数?

必须允许重叠子串;例如,“1111”包含3个"11"子串。

"12121"包含2个"121"子字符串。

"1111".count("11")

将返回2.它不计算任何重叠。

1 个答案:

答案 0 :(得分:3)

字符串有方法计数

你可以做到

s = '12212'

s.count('12') # this equals 2

针对不断变化的问题进行编辑,以下答案由tobias_k发表评论

要计算重叠,

count_all = lambda string, sub: sum(string[i:i+len(sub)] == sub for i in range(len(string) - len(sub) + 1))

可以使用

调用
count_all('1111', '11') # this returns 3