我怎样才能用 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 优雅地完成此操作?
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"]]