[ruby-it] contare frequenza su array
Giampiero Zanchi
cidza a tin.it
Mer 4 Feb 2009 14:19:01 CET
ciao a tutti
sto imparando Ruby; per me uno degli aspetti più ostici è capire come
produrre codice ben scritto; Ruby dà la libertà di scegliere fra tanti
modi diversi per ottenere un certo risultato; rimane sempre il dubbio
che esista una strada migliore di quella intrapresa; ad esempio, come si
fa a ottenere la frequenza degli elementi di un array? personalmente ho
prodotto il seguente codice:
a = [1,2,3,4,1,2,3,1,2,1,5,5]
b = {}
a.uniq.each {|x| b[x] = a.find_all {|y| y == x}.size}
p b
che produce
{5=>2, 1=>4, 2=>3, 3=>2, 4=>1}
esistono modi più puliti o efficienti di ottenere lo stesso risultato?
c'è modo di scrivere su un'unica riga la parte
b = {}
a.uniq.each {|x| b[x] = a.find_all {|y| y == x}.size}
p b
?
grazie
--
Posted via http://www.ruby-forum.com/.
More information about the Ml
mailing list