Contando os elementos distintos em uma matriz
Eu tenho uma matriz:
a = [1, 2, 3, 3, 6, 8, 1, 9]
Eu quero exibir cada valor de elemento exclusivo e sua contagem de elementos associados assim:
1: 2
2: 1
3: 2
6: 1
8: 1
9: 1
Até agora eu tenho:
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
]
}
Portanto, cada elemento do Hash contém uma matriz. Posso usar a contagem dessa matriz para obter minha resposta, mas estou tendo problemas para descobrir como processar o hash de forma concisa.
Esta é uma implementação horrível?
a.sort.group_by { |x| x }.each {|x| puts "#{x[0]} #{x[1].count}" }