第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

具有重疊現(xiàn)象的字符串計數(shù)

具有重疊現(xiàn)象的字符串計數(shù)

拉風(fēng)的咖菲貓 2019-06-13 17:50:40
具有重疊現(xiàn)象的字符串計數(shù)計算給定字符串出現(xiàn)的次數(shù)(包括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?還是說蟒蛇有更好的方法?
查看完整描述

3 回答

?
慕容708150

TA貢獻1831條經(jīng)驗 獲得超4個贊

這個強權(quán)要更快,因為它可以在C中進行比較:

def occurrences(string, sub):
    count = start = 0
    while True:
        start = string.find(sub, start) + 1
        if start > 0:
            count+=1
        else:
            return count


查看完整回答
反對 回復(fù) 2019-06-13
?
慕絲7291255

TA貢獻1859條經(jīng)驗 獲得超6個贊

>>> import re>>> text = '1011101111'>>> len(re.findall('(?=11)', text))5

如果您不想將整個匹配列表加載到內(nèi)存中,這將不會是一個問題!如果你真的愿意的話,你可以這樣做:

>>> sum(1 for _ in re.finditer('(?=11)', text))5

作為一種功能(re.escape確保子字符串不干擾regex):

>>> def occurrences(text, sub):
        return len(re.findall('(?={0})'.format(re.escape(sub)), text))>>> occurrences(text, '11')5


查看完整回答
反對 回復(fù) 2019-06-13
?
HUWWW

TA貢獻1874條經(jīng)驗 獲得超12個贊

您也可以嘗試使用新Python regex模塊,它支持重疊匹配。

import regex as redef count_overlapping(text, search_for):
    return len(re.findall(search_for, text, overlapped=True))count_overlapping('1011101111','11')  # 5


查看完整回答
反對 回復(fù) 2019-06-13
  • 3 回答
  • 0 關(guān)注
  • 613 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號