Wie teilt man diese Zeichenfolge mit Python?

8

Ich habe Zeichenfolgen, die wie dieses Beispiel aussehen: "AAABBBCDEEEBBBAA"

In der Zeichenfolge ist ein beliebiges Zeichen möglich.

Ich möchte es in eine Liste wie folgt aufteilen: [AAA, BBB, C, D, EEEE, BBB, AA]

, so dass jede fortlaufende Strecke der gleichen Zeichen zu einem separaten Element der Aufteilungsliste geht.

Ich weiß, dass ich über Zeichen in der Zeichenfolge iterieren kann, überprüfe jedes i- und i-1-Paar, wenn sie das gleiche Zeichen usw. enthalten, aber gibt es da eine einfachere Lösung?

    
jan 15.10.2010, 08:44
quelle

4 Antworten

9
%Vor%

Und durch normale String-Manipulation

%Vor%     
ghostdog74 15.10.2010, 08:50
quelle
15

Wir könnten Regex verwenden:

%Vor%

Alternativ könnten wir itertools.groupby verwenden.

%Vor%

timeit zeigt an, dass Regex (für diese bestimmte Zeichenfolge) schneller ist ( Python 2.6 , Python 3.1 ). Aber Regex ist schließlich auf String spezialisiert, und groupby ist eine generische Funktion, also ist das nicht so unerwartet.

    
kennytm 15.10.2010 08:47
quelle
3
%Vor%     
Glenn Maynard 15.10.2010 08:48
quelle
0

Nur eine weitere Möglichkeit, Ihr Problem zu lösen:

%Vor%     
James Sapam 01.12.2013 14:18
quelle

Tags und Links