如何将字符串拆分为部分,每个部分在python中只包含相同的字符

如何将字符串拆分为部分,每个部分在python中只包含相同的字符,python,Python,我想得到一个DNA序列作为一个字符串,我需要将该字符串拆分为一个列表的各个部分。每个部分必须只包含相同的字符。最终的输出必须是一个列表,按照原始序列的顺序使用python 3.4 例如:-infected=“AATTTGCCAAA” 我需要得到如下输出 Modified. = ['AA','TTT','G','CC','AAA' ] def fchar(通道,mi): 全球numLi fc=ch li=“” 对于受感染的[mi:]中的c: 如果fc==c: li+=fc mi=mi+1 其他

我想得到一个DNA序列作为一个字符串,我需要将该字符串拆分为一个列表的各个部分。每个部分必须只包含相同的字符。最终的输出必须是一个列表,按照原始序列的顺序使用python 3.4

例如:-
infected=“AATTTGCCAAA”
我需要得到如下输出

Modified.  = ['AA','TTT','G','CC','AAA' ]
def fchar(通道,mi):
全球numLi
fc=ch
li=“”
对于受感染的[mi:]中的c:
如果fc==c:
li+=fc
mi=mi+1
其他:
打破
如果mi
def fchar(通道,mi):
全球numLi
fc=ch
li=“”
对于受感染的[mi:]中的c:
如果fc==c:
li+=fc
mi=mi+1
其他:
打破
如果mi这就是原因:

这就是为什么:


你试过什么吗?似乎是一项简单的任务。对不起,我不能提及我需要实现一个算法来完成这项任务。你尝试过什么吗?似乎是一项简单的任务。对不起,我不能提及我需要实现一个算法来完成这项任务Thanx先生。它也在工作。我需要知道groupby是否是python中的内置包。@ThilinaChathuranga欢迎,
group
by不是内置函数,您需要从python默认模块之一的
itertools
模块导入它。@Kasramvd:thanx很多,看起来很简单。但实际上我需要做一个算法并实现我所需要的。因为这是一个老生常谈的问题,需要算法。所以我不能导入和使用预定义的函数。不管怎样,Thanx先生。它也在工作。我需要知道groupby是否是python中的内置包。@Thilinachhuranga欢迎,
group
by不是内置函数,您需要从python默认模块之一的
itertools
模块导入它。@Kasramvd:thanx很多,看起来很简单。但实际上我需要做一个算法并实现我所需要的。因为这是一个需要算法的问题。所以我不能导入和使用预定义的函数。无论如何,Thanx很多,实际上我只需要算法来实现它,所以代码意味着很多,,实际上我只需要算法来实现这个,所以代码意义重大
def fchar(ch,mi):
    global numLi
    fc=ch
    li=""
    for c in infected[mi:]:
        if fc==c :
            li+=fc
            mi = mi+1
        else:
            break

    if mi<len(infected) :
        return li+" "+fchar(infected[mi],mi)
    else:
        return li

infected =input("Enter DNA sequence\n") ;#"AAATTTTTTTTGCCCCCCA"
x=fchar(infected[0],0)         
newSet = x.split(' ')
print(newSet)
>>> from itertools import groupby
>>> infected ="AATTTGCCAAA"
>>> 
>>> [''.join(g) for _,g in groupby(infected)]
['AA', 'TTT', 'G', 'CC', 'AAA']