我有一個電子郵件地址陣列(大概超過50,000個),我有興趣計算特定電子郵件域的頻率。舉例來說,如果我有用分隔符分隔電子郵件字符串
emails = [
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]'
]
,我很感興趣,其中電子郵件域出現最多的,我希望與頻率2
返回'gmail'
。
要做到這一點,我認爲這是一個好主意,通過數組並丟棄在@
之前發生的所有事情,並將域保存爲新數組,然後我可以迭代。我將如何做到這一點?
您可以將它組合到'counts = emails.each_with_object(Hash.new(0)){| t,h | ...}' – Stefan
謝謝!如果我然後想根據整數來排序信息,我該怎麼做?例如,如果我使用'counts.sort'(取自您使用的相同計數),我會得到一個輸出,如[gmail.com,2],[yahoo.com,1] ..'這將按字母順序排列。我想用數字順序排序,換句話說,用頻率最高的電子郵件排序 – Chumbawoo
不要緊,它似乎使用'counts.sort_by {| a,b | b.to_i}' – Chumbawoo