以下摘自百度知道,歸類於此,方便學習查找。
舉例說明:s= 'abababab' 統計s中字符串‘aba'的個數 答案應爲3個的時候,用Python2.X版本如何寫程序? 如果答案爲2個的時候,即被統計過的字符不再參與統計,那麼代碼如何寫? 希望代碼能精簡一些。 拓展:如果要替換第二個'aba’爲‘bab’ 程序又應該怎麼寫?
s= 'abababab' 不重複統計 s.count('aba')
重複統計 import re reg=re.compile("(?=aba)") length=len(reg.findall(s)) print(length)
------------------------------------------------------------------------------------------------------------------------------
答案爲3(用正則):
1 2 3 4 | >>> import re >>> s = 'abababab' >>> len (re.findall(r '(?=aba)' , s)) 3 |
答案爲2,用字符串的count方法:
1 2 3 4 | >>> import string >>> s = 'abababab' >>> s.count( 'aba' ) 2 |
替換第二個'aba’爲‘bab’,用字符串的切片方法(可能方法醜陋了點,初學者見諒):
1 2 3 4 5 6 7 8 9 | >>> s = 'abababab' >>> pos = s.find( 'aba' ) >>> sNew = s[pos + 1 :].replace( 'aba' , 'bab' , 1 ) >>> if pos = = 0 : ... s[pos] + sNew ... elif pos > 0 : ... s[:pos] + sNew ... 'abbabbab' |