Подсчет последовательных элементов в списке - PullRequest
1 голос
/ 11 марта 2019

Я делал небольшую программу, которая подсчитывала, сколько раз символ появляется в списке, и у меня есть вопрос: «Можно ли сделать это последовательными числами?». У меня есть этот код сейчас:

def function(list):
    final_list = []
    for element in set(list):
        final_list.append([element, list.count(element)])
    return final_list

1 Ответ

3 голосов
/ 11 марта 2019

Для более простого решения вы можете использовать itertools.groupby:

from itertools import groupby
l = [1, 1, 1, 2, 2, 3, 4, 4, 1, 1, 1]

[[k,len(list(v))] for k,v in groupby(l)]
# [[1, 3], [2, 2], [3, 1], [4, 2], [1, 3]]
...