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?
Wir könnten Regex verwenden:
%Vor% Alternativ könnten wir itertools.groupby
verwenden.
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.