Пример кода:
    
def count_repetitions(data):
  counts = {}
  for item in data:
    if item in counts:
      counts[item] += 1
    else:
      counts[item] = 1
  return counts
# Пример использования
my_list = ['a', 'b', 'a', 'c', 'b', 'a']
result = count_repetitions(my_list)
print(result) # {'a': 3, 'b': 2, 'c': 1}
    
  
  Можно использовать collections.Counter для более элегантного решения.
      
from collections import Counter
my_list = ['a', 'b', 'a', 'c', 'b', 'a']
result = Counter(my_list)
print(result) # Counter({'a': 3, 'b': 2, 'c': 1})
      
  
Для подсчета количества повторений элементов в списке или другой итерируемой последовательности с использованием словаря (dict) в Python, можно использовать несколько подходов.  Вот основные:
if/else:
      Этот метод наиболее понятен для начинающих. Мы проходим по каждому элементу последовательности и, если он уже есть в словаре, увеличиваем его счетчик. Если элемента нет, добавляем его в словарь со счетчиком, равным 1.
def count_repetitions_loop(data):
  counts = {}
  for item in data:
    if item in counts:
      counts[item] += 1
    else:
      counts[item] = 1
  return counts
# Пример использования:
my_list = ['a', 'b', 'a', 'c', 'b', 'a']
result = count_repetitions_loop(my_list)
print(result) # Output: {'a': 3, 'b': 2, 'c': 1}
dict.get():
      Метод get() словаря позволяет получить значение по ключу, а если ключ отсутствует, вернуть значение по умолчанию (второй аргумент).  Это упрощает код.
def count_repetitions_get(data):
  counts = {}
  for item in data:
    counts[item] = counts.get(item, 0) + 1
  return counts
# Пример использования:
my_list = ['a', 'b', 'a', 'c', 'b', 'a']
result = count_repetitions_get(my_list)
print(result) # Output: {'a': 3, 'b': 2, 'c': 1}
collections.Counter:
      Модуль collections предоставляет класс Counter, который специально разработан для подсчета количества элементов.  Это самый эффективный и лаконичный способ.
from collections import Counter
def count_repetitions_counter(data):
  return Counter(data)
# Пример использования:
my_list = ['a', 'b', 'a', 'c', 'b', 'a']
result = count_repetitions_counter(my_list)
print(result) # Output: Counter({'a': 3, 'b': 2, 'c': 1})
Counter возвращает объект, похожий на словарь, но с дополнительными возможностями (например, получение n наиболее часто встречающихся элементов с помощью метода most_common()).
Какой метод выбрать?
if/else.dict.get() немного более компактный и эффективный.collections.Counter. Он наиболее производителен и предоставляет удобные методы для работы с результатами подсчета.