我怎样才能用 ruby 处理这个列表?

How can I deal with this list with ruby?

我想创建一个列表,如下所示,作为 元组 数组的列表:

['Daisy', '80', '90', 'Amy', '90', '100', 'Anna', '88', '99']

更改为:

[['Daisy', '80', '90'], ['Amy', '90', '100'], ['Anna', '88', '99']]

如何使用 ruby 优雅地完成此操作?

尝试Enumberable#each_slice

list = ['Daisy', '80', '90', 'Amy', '90', '100', 'Anna', '88', '99']
list.each_slice(3).to_a
=> [["Daisy", "80", "90"], ["Amy", "90", "100"], ["Anna", "88", "99"]]

另一种不需要您知道每个人有多少号码的解决方案:

my_list = ['Daisy', '80', '90', 'Amy', '90', '100', 'Anna', '88', '99']

non_digit_word = -> x{x[/\D+/]}

p my_list.slice_before(&non_digit_word).to_a #=> [["Daisy", "80", "90"], ["Amy", "90", "100"], ["Anna", "88", "99"]]