如何在Ruby中将数组转换为Dictionary?

jls*_*str 1 ruby arrays algorithm hash dictionary

我一直在努力解决我在面试时被问到的问题,但它完全是这样的:

考虑Ruby中的以下结构:

['dog', 'donkey', 'cat', 'cow', 'horse']
Run Code Online (Sandbox Code Playgroud)

你怎么把它变成这个:

{ 'd' => ['dog', 'donkey'], 'c' => ['cat', 'cow'], 'h' => ['horse'] }
Run Code Online (Sandbox Code Playgroud)

尽可能地说是惯用语吗?

我已经尝试了很多方法,只是已经接近了,并且还看到了许多类似的问题,但从来没有特别解决这个问题,

你们会怎么做?你能帮我解决一下吗?

最好的祝福,

How*_*ard 10

你的第一个字符分组:

['dog', 'donkey', 'cat', 'cow', 'horse'].group_by{|i|i[0]}
Run Code Online (Sandbox Code Playgroud)

或者有点发烧友:

['dog', 'donkey', 'cat', 'cow', 'horse'].group_by &:chr
Run Code Online (Sandbox Code Playgroud)