如何在不更改相同值红宝石位置的情况下按降序对哈希进行排序

Hari Krishnan |
hash = {"p1"=>56, "p2"=>56, "p3"=>0, "p4"=>56, "p5"=>56, "p6"=>64, "p7"=>0}

p Hash[hash.sort_by{|k,v| v}.reverse] # gives 
{"p6"=>64, "p5"=>56, "p4"=>56, "p2"=>56, "p1"=>56, "p3"=>0}

但我想输出如下

{"p6"=>64, "p1"=>56, "p2"=>56, "p4"=>56, "p5"=>56}

另外,最终哈希值不需要键为零。

阿列克谢·马蒂什金(Alexei Matiushkin)
p Hash[
  hash.reject { |_, v| v.zero? }.sort do |kv1, kv2| 
    (val = kv1.last <=> kv2.last).zero? ? kv2.first <=> kv1.first : val
  end.reverse]

#⇒ {"p6"=>64, "p1"=>56, "p2"=>56, "p4"=>56, "p5"=>56}

UPD使用@CarySwoveland建议的块变量表示,并删除多余的变量reverse

p Hash[
  hash.reject { |_, v| v.zero? }.sort do |(k1,v1), (k2,v2)| 
    (val = v2 <=> v1).zero? ? k1 <=> k2 : val
  end
]

#⇒ {"p6"=>64, "p1"=>56, "p2"=>56, "p4"=>56, "p5"=>56}

注意:上面将对相同值的键进行排序,而下面的@Cary答案则不会。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不更改其他级别顺序的情况下按一个级别对MultiIndex进行排序

来自分类Dev

如何在不更改组的内部排列的情况下按三行的组对工作表进行排序

来自分类Dev

如果具有相同的值,如何按字母顺序对列表中的元组进行排序,而不更改其降序值?

来自分类Dev

如何在不影响行顺序的情况下按降序对df的每一列进行排序?

来自分类Dev

熊猫 如何在不更改索引的情况下对DataFrame进行排序?

来自分类Dev

如何在不更改查询的情况下对条形图进行排序?

来自分类Dev

如何在没有 Collections.sort() 的情况下按值对 LinkedHashMap 进行排序?

来自分类Dev

如何按年/月和总和值对红宝石文字哈希进行分组

来自分类Dev

如何在不更改相同值的情况下使用不同名称填充字符串数组项?

来自分类Dev

如何在不添加尾随'\ n'的情况下对字符串进行哈希处理?

来自分类Dev

如何在不丢失或更改数据的情况下更改列排序规则?

来自分类Dev

如何在不预先定义哈希值/对象的情况下增加值

来自分类Dev

在这种情况下如何在红宝石上使用下一步?

来自分类Dev

在这种情况下,如何在红宝石上使用下一步?

来自分类Dev

如何在不按日期排序的情况下使用R重新采样XTS时间序列?

来自分类Dev

sql 如何在不添加列的情况下按联合的子查询排序?

来自分类Dev

如何在不更改轴标签对齐的情况下更改ggplot标题的垂直位置

来自分类Dev

如何在不更改位置的情况下更改div的宽度/高度?

来自分类Dev

如何在对元素进行未分类的情况下使用哈希包的“值”功能?

来自分类Dev

如何在不单击标题的情况下按列对QTableWidget进行排序?

来自分类Dev

如何在不创建DataView的情况下对DataTable行进行排序?

来自分类Dev

如何在不创建中间 Seq 的情况下对 Iterable 进行排序?

来自分类Dev

如何在不更改主数组原始顺序的情况下通过BOOL快速排序?

来自分类Dev

如何在不更改相同列表的情况下反转通用列表?

来自分类Dev

如何在不更改satic变量的情况下创建相同活动的新实例?

来自分类Dev

如何在不按显示器按钮的情况下更改台式电脑的屏幕亮度?

来自分类Dev

如何在不按 Python3 中的按钮的情况下更改 tkinter 标签的文本?

来自分类Dev

如何在不更改绘图位置的情况下从igraph删除顶点

来自分类Dev

如何在不转储的情况下更改postgresql中列的位置

Related 相关文章

  1. 1

    如何在不更改其他级别顺序的情况下按一个级别对MultiIndex进行排序

  2. 2

    如何在不更改组的内部排列的情况下按三行的组对工作表进行排序

  3. 3

    如果具有相同的值,如何按字母顺序对列表中的元组进行排序,而不更改其降序值?

  4. 4

    如何在不影响行顺序的情况下按降序对df的每一列进行排序?

  5. 5

    熊猫 如何在不更改索引的情况下对DataFrame进行排序?

  6. 6

    如何在不更改查询的情况下对条形图进行排序?

  7. 7

    如何在没有 Collections.sort() 的情况下按值对 LinkedHashMap 进行排序?

  8. 8

    如何按年/月和总和值对红宝石文字哈希进行分组

  9. 9

    如何在不更改相同值的情况下使用不同名称填充字符串数组项?

  10. 10

    如何在不添加尾随'\ n'的情况下对字符串进行哈希处理?

  11. 11

    如何在不丢失或更改数据的情况下更改列排序规则?

  12. 12

    如何在不预先定义哈希值/对象的情况下增加值

  13. 13

    在这种情况下如何在红宝石上使用下一步?

  14. 14

    在这种情况下,如何在红宝石上使用下一步?

  15. 15

    如何在不按日期排序的情况下使用R重新采样XTS时间序列?

  16. 16

    sql 如何在不添加列的情况下按联合的子查询排序?

  17. 17

    如何在不更改轴标签对齐的情况下更改ggplot标题的垂直位置

  18. 18

    如何在不更改位置的情况下更改div的宽度/高度?

  19. 19

    如何在对元素进行未分类的情况下使用哈希包的“值”功能?

  20. 20

    如何在不单击标题的情况下按列对QTableWidget进行排序?

  21. 21

    如何在不创建DataView的情况下对DataTable行进行排序?

  22. 22

    如何在不创建中间 Seq 的情况下对 Iterable 进行排序?

  23. 23

    如何在不更改主数组原始顺序的情况下通过BOOL快速排序?

  24. 24

    如何在不更改相同列表的情况下反转通用列表?

  25. 25

    如何在不更改satic变量的情况下创建相同活动的新实例?

  26. 26

    如何在不按显示器按钮的情况下更改台式电脑的屏幕亮度?

  27. 27

    如何在不按 Python3 中的按钮的情况下更改 tkinter 标签的文本?

  28. 28

    如何在不更改绘图位置的情况下从igraph删除顶点

  29. 29

    如何在不转储的情况下更改postgresql中列的位置

热门标签

归档