【问题标题】:Using .reverse in irb在 irb 中使用 .reverse
【发布时间】:2020-09-05 20:54:57
【问题描述】:

在 IRB 中,

.sort 运行良好。

(1..10).to_a.sample(5).sort => [1, 3, 6, 8, 9]

但是,.reverse 不起作用

(1..10).to_a.sample(5).reverse => [4, 3, 10, 2, 1]

我怎样才能得到反转的结果? 谢谢

【问题讨论】:

  • reverse 之前调用sort。目前,您正在对未排序的数组调用 reverse ,这将反转随机输出。反向不对数组进行排序。
  • @benjessop 在reverse 之前调用sort 是否仅适用于IRB?或者也适用于python?

标签: ruby irb


【解决方案1】:

反向工作。 “reverse”不按值反转,它按位置反转。第一项成为最后一项。第二个变成倒数第二个。等等...由于您正在反转一个随机数数组,因此您将反转那些未排序的随机数。

又是这样,但显示的是中间随机数。

2.6.4 :008 > nums = (1..10).to_a.sample(5)
 => [9, 2, 8, 3, 5] 
2.6.4 :009 > nums.reverse
 => [5, 3, 8, 2, 9] 

如果你想要反向排序,首先对随机数进行排序,然后将它们反向。

(1..10).to_a.sample(5).sort.reverse

再次,所有步骤...

2.6.4 :010 > nums = (1..10).to_a.sample(5)
 => [7, 9, 8, 4, 1] 
2.6.4 :011 > sorted = nums.sort
 => [1, 4, 7, 8, 9] 
2.6.4 :012 > sorted.reverse
 => [9, 8, 7, 4, 1] 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    相关资源
    最近更新 更多