2014-10-29 59 views
0

我有一串我知道要排序的字符。例如:Python - 當字符與前一個字符不同時,將字符串拆分後的字符串

myString = "aaaabbbbbbcccddddd" 

我想在點此文件分成列表時我上的字符比其前面的字符不同的,如下所示:

splitList = ["aaaa","bbbbbb","ccc","ddddd"] 

我在Python工作3.4。

謝謝!

+1

嗯,奇怪。我會認爲're.split(r'(?<=(。))(?!\ 1)',「aaaabbbbbbcccddddd」)會起作用,但它不會。任何人都可以更好地解釋爲什麼? (編輯錯誤) – Amadan 2014-10-29 03:47:46

回答

1
In [294]: myString = "aaaabbbbbbcccddddd" 

In [295]: [''.join(list(g)) for i,g in itertools.groupby(myString)] 
Out[295]: ['aaaa', 'bbbbbb', 'ccc', 'ddddd'] 
0
myString = "aaaabbbbbbcccddddd" 
result = [] 
for i,s in enumerate(myString): 
    l = len(result) 
    if l == 0 or s != myString[i-1]: 
     result.append(s) 
    else: 
     result[l-1] = result[l-1] + s 

print result 

輸出:

['aaaa', 'bbbbbb', 'ccc', 'ddddd'] 
+0

我在第7行收到「l」未定義的錯誤。 – adeora 2014-10-29 04:00:43