卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

Python統(tǒng)計(jì)字符串子串重復(fù)次數(shù)

字符串子串重復(fù)次數(shù)是在字符串統(tǒng)計(jì)與處理中的一項(xiàng)基礎(chǔ)操作。在DNA序列的分析中,這是一個(gè)非常常見(jiàn)的操作,因?yàn)橹貜?fù)序列在基因組中出現(xiàn)的頻率很高。 遍歷字符串所有子串并存入字典 首先,我們可以使用遍歷的

字符串子串重復(fù)次數(shù)是在字符串統(tǒng)計(jì)與處理中的一項(xiàng)基礎(chǔ)操作。在DNA序列的分析中,這是一個(gè)非常常見(jiàn)的操作,因?yàn)橹貜?fù)序列在基因組中出現(xiàn)的頻率很高。

遍歷字符串所有子串并存入字典

首先,我們可以使用遍歷的方法來(lái)統(tǒng)計(jì)字符串中子串的重復(fù)次數(shù)。我們將每一個(gè)子串存放在一個(gè)字典中,如果字典中已經(jīng)存在該子串,則將對(duì)應(yīng)的值加一;否則,將該子串添加到字典中,并將其值設(shè)為1。

dic  {} 
s  'AAAA' 
for i in range(len(s)): 
    for j in range(i 2, len(s)): 
        t  s[i:j] 
        if t in dic: 
            dic[t]   1 
        else: 
            dic[t]  1

我們將這種方法稱(chēng)為“蠕蟲(chóng)”,因?yàn)樗?lèi)似于蠕蟲(chóng)在運(yùn)動(dòng)時(shí)無(wú)重復(fù)統(tǒng)計(jì)的特點(diǎn)。該方法可以獲取字符串中所有字符,并統(tǒng)計(jì)它們?cè)谧址谐霈F(xiàn)的次數(shù)。

升級(jí)版方法引入查詢(xún)避免不必要的統(tǒng)計(jì)

為了提高效率,我們可以對(duì)上述方法進(jìn)行改進(jìn)。在比較之前,先引入查詢(xún),避免不必要的統(tǒng)計(jì)。具體操作是,在遍歷字符串時(shí),如果當(dāng)前子串已經(jīng)在字典中存在,則跳過(guò)該子串繼續(xù)遍歷;否則,進(jìn)行統(tǒng)計(jì)。

def worm(s): 
    dic  {} 
    for i in range(len(s)-3): 
        j  i 
        s1  s[i:i 2] 
        if s1 in dic: 
            continue 
        s2  s[i 2:] 
        while (s1) ! -1: 
            count  1 
            stemp  s2 
            while (s1) ! -1: 
                count   1 
                stemp  stemp[(s1)   len(s1):] 
            if not (s1 in dic): 
                dic[s1]  count 
            j  1 
            s1  s[i:j 2] 
            s2  s[j 2:] 
    return dic

這個(gè)方法是對(duì)前一種方法的升級(jí)版,引入了查詢(xún)操作,避免了不必要的統(tǒng)計(jì)。通過(guò)提高效率,我們可以更快地獲得重復(fù)子串的統(tǒng)計(jì)結(jié)果。

總結(jié)

希望生物信息工作者能夠相互交流,并提出修改建議,以進(jìn)一步完善這些統(tǒng)計(jì)方法。

標(biāo)簽: