xcfg14 发表于 2021-2-3 21:15:00

计算子串出现次数

计算子串出现次数的问题其实有个非常简单的方法,三行代码就可以搞定,但是很tricky:
def findstr(str1, str2):
    temp = []
    temp = str1.split(str2)
    return len(temp) - 1

jackz007 发表于 2021-2-3 23:09:53

      三行就可以搞定?如果 str2 出现在 str1 的首尾,或者,在极端情况下,str1 本身就是由多个 str2 拼成,也可以对付得了吗?

xcfg14 发表于 2021-2-4 17:23:06

jackz007 发表于 2021-2-3 23:09
三行就可以搞定?如果 str2 出现在 str1 的首尾,或者,在极端情况下,str1 本身就是由多个 str2...

亲测可用哦亲,测试数据:
str1 = 'mlmlmlmlml'
str2 = 'ml'
此时temp列表里是六个空字符串

wp231957 发表于 2021-2-4 18:27:10

xcfg14 发表于 2021-2-4 17:23
亲测可用哦亲,测试数据:
str1 = 'mlmlmlmlml'
str2 = 'ml'


aaa里面有几个aa

xcfg14 发表于 2021-2-4 20:04:56

wp231957 发表于 2021-2-4 18:27
aaa里面有几个aa

不杠,这应该属于定义的问题

hrp 发表于 2021-2-4 20:08:23

你这个temp = []有点多余啊

xcfg14 发表于 2021-2-4 20:14:50

hrp 发表于 2021-2-4 20:08
你这个temp = []有点多余啊

确实,刚转Python还不太习惯,以前都是先定义后使用

hrp 发表于 2021-2-4 20:19:59

xcfg14 发表于 2021-2-4 20:14
确实,刚转Python还不太习惯,以前都是先定义后使用

既然用到类方法了不如更干脆一点{:10_281:}:
def findstr(str1, str2):
    return str1.count(str2)
页: [1]
查看完整版本: 计算子串出现次数