【问题标题】:Sorting a two-dimensional array with more than one criterion使用多个标准对二维数组进行排序
【发布时间】:2011-10-27 14:37:48
【问题描述】:

什么是最简单的 ruby​​ 代码来排序这个表,以便在第一列它 是升序排列,第二列是降序排列

matrix = [ [1,1],
           [2,1],
           [2,4],
           [2,3],
           [2,2],
           [3,1],
           [4,2],
           [4,3],
           [4,4],
           [1,4],
           [1,3],
           [1,2],
           [3,2],
           [3,4],
           [3,3],
           [4,1] ]

结果表应该是:

[[1,4],
 [1,3],
 [1,2],
 [1,1],
 [2,4],
 [2,3],
 [2,2],
 [2,1],
 [3,4],
 [3,3],
 [3,2],
 [3,1],
 [4,4],
 [4,3],
 [4,2],
 [4,1] ]

任何帮助表示赞赏, 泰德

【问题讨论】:

标签: ruby arrays sorting multidimensional-array


【解决方案1】:
matrix.sort_by {|e| [e[0], -e[1]]}

我认为这是最简单的,但根据docs,如果键集很简单,它可能会非常昂贵。

【讨论】:

  • 展开块参数:matrix.sort_by { |x, y| [x, -y] }
猜你喜欢
  • 1970-01-01
  • 2013-08-17
  • 1970-01-01
  • 2021-01-22
  • 2015-09-17
  • 2015-09-16
  • 2018-06-21
相关资源
最近更新 更多