Подсчет отдельных элементов в массиве

У меня есть массив:

a = [1, 2, 3, 3, 6, 8, 1, 9]

Я хочу отобразить каждое уникальное значение элемента и количество связанных элементов следующим образом:

1: 2
2: 1
3: 2
6: 1
8: 1
9: 1

Пока что у меня есть:

a.sort.group_by { |x| x }
{
  1 => [
    [0] 1,
    [1] 1
  ],
  2 => [
    [0] 2
  ],
  3 => [
    [0] 3,
    [1] 3
  ],
  6 => [
    [0] 6
  ],
  8 => [
    [0] 8
  ],
  9 => [
    [0] 9
  ]
}

Таким образом, каждый элемент хэша содержит массив. Я могу использовать счет этого массива, чтобы получить мой ответ, но у меня возникают проблемы с выяснением, как обрабатывать хэш кратко.

Это ужасная реализация?

a.sort.group_by { |x| x }.each {|x| puts "#{x[0]} #{x[1].count}" }

Ответы на вопрос(4)

Ваш ответ на вопрос