У меня есть небольшой вопрос о том, как проверить и сравнить два или более символов в списке на Python.Список Python, сравнивающий символы и подсчет их
Например, у меня есть строка «cdcdccddd». Я сделал список из этой строки, чтобы легче сравнивать символы. И нужный вывод: c: 1 d: 1 c: 1 d: 1 c: 2 d: 3 Итак, он подсчитывает символы, если вначале это не то же самое, что и второе, счетчик = 1, если второй - тот же, что и третий, тогда счетчик равен +1 и нужно проверить третье с четвертым и так далее.
I got so far this algorithm:
text = "cdcdccddd"
l = []
l = list(text)
print list(text)
for n in range(0,len(l)):
le = len(l[n])
if l[n] == l[n+1]:
le += 1
if l[n+1] == l[n+2]:
le += 1
print l[n], ':' , le
else:
print l[n], ':', le
но его не работает хорошо, потому что он считает первый и второй элемент, но не второй и третий. Для этого выхода будут:
c : 1
d : 1
c : 1
d : 1
c : 2
c : 1
d : 3
Как сделать этот алгоритм лучше?
Спасибо!
Как вы сказали, что этот алгоритм не правильно в базе, потому что вы не можете рассчитывать все вхождения, как это (так как вы не знаете числа повторяющихся последовательностей). Одним из способов преодоления этой проблемы является категоризация ваших символов, а затем подсчет количества символов в каждом подмножестве. – Kasramvd