我有一组电子邮件地址(大约超过 50,000 个),我有兴趣计算特定电子邮件域的频率。例如,如果我有
emails = [
'Johndoe@gmail.com',
'Johndoe@yahoo.com',
'Johndoe@aol.com',
'Johndoe@someuni.xyz.com',
'Janedoe@gmail.com'
]
而且我对哪个电子邮件域出现最多感兴趣,我想以 2
的频率返回 'gmail'
。
为此,我认为遍历数组并丢弃 @
之前发生的所有内容并将域保留为新数组是个好主意,然后我可以对其进行迭代.我该怎么做?
最佳答案
假设您的电子邮件是字符串
,您可以这样做:
emails = ["Johndoe@gmail.com", "Johndoe@yahoo.com", "Johndoe@aol.com", "Johndoe@someuni.xyz.com", "Janedoe@gmail.com"]
counts = Hash.new(0)
emails.each { |t| counts[t.partition("@").last] += 1}
counts #{"gmail.com"=>2, "yahoo.com"=>1, "aol.com"=>1, "someuni.xyz.com"=>1}
关于ruby - 用定界符分隔电子邮件字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37782752/