成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

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

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

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

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

首先,我們可以使用遍歷的方法來統(tǒng)計字符串中子串的重復(fù)次數(shù)。我們將每一個子串存放在一個字典中,如果字典中已經(jīng)存在該子串,則將對應(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

我們將這種方法稱為“蠕蟲”,因為它類似于蠕蟲在運(yùn)動時無重復(fù)統(tǒng)計的特點。該方法可以獲取字符串中所有字符,并統(tǒng)計它們在字符串中出現(xiàn)的次數(shù)。

升級版方法引入查詢避免不必要的統(tǒng)計

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

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

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

總結(jié)

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

標(biāo)簽: