maksutovn
@maksutovn
Начинающий php программист, графический дизайнер

Разбить строку по последовательности символов?

Как разбить строку по последовательности символов, которые в нем. Было бы лучше если коротко и производительно.

INPUT: 111222555666644
OUTPUT: ['111', '222', '555', '6666', '44']

INPUT: aa11bbbccc
OUTPUT: ['aa', '11', 'bbb', 'ccc']

INPUT: aaaabbbbaaaabbbb
OUTPUT: ['aaaa', 'bbbb', 'aaaa', 'bbbb']
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
aRegius
@aRegius
Python Enthusiast
from itertools import groupby

[''.join(items) for _, items in groupby(input_string)]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Возможно в Python есть однострочник, который решает вашу задачу - не знаю. Первое, что пришло в голову:
my_list = list('111222555666644')
new_list = []
my_set = set(my_list)

for x in my_set:
	count_ = my_list.count(x)
	new_list.append(x*count_)

print(new_list)
# ['6666', '555', '222', '111', '44']
# ['aa', 'bbb', 'ccc', '11']

Правда последовательность сбилась, но думаю можно подчинить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы