【问题标题】:How can I deal with this list with ruby?如何用 ruby​​ 处理这个列表?
【发布时间】:2015-04-15 01:42:04
【问题描述】:

我想制作一个如下列表作为 tuples 数组的列表:

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

改为:

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

如何用 ruby​​ 优雅地做到这一点?

【问题讨论】:

  • @muistooshort 不好意思,最近用python太多,搞错了

标签: ruby list zip tuples


【解决方案1】:

试试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"]]

【讨论】:

    【解决方案2】:

    另一个不需要你知道每个人有多少个数字的解决方案:

    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"]]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-22
      • 2014-12-26
      • 2015-04-16
      • 2018-08-17
      • 1970-01-01
      相关资源
      最近更新 更多