gpt4 book ai didi

ruby - 如何从哈希中选择前 5 个值?

转载 作者:数据小太阳 更新时间:2023-10-29 07:11:31 24 4
gpt4 key购买 nike

我有一个 ids 和他们的分数的散列,它是这样的:

@objects = {1=>57, 4=>12, 3=>9, 5=>3, 55=>47, 32=>39, 17=>27, 29=>97, 39=>58}

我怎样才能选出前五名并放弃其余的?

我这样做:

@orderedObject = @objects.sort_by {|k,v| v}.reverse
=>[[29, 97], [39, 58], [1, 57], [55, 47], [32, 39], [17, 27], [4, 12], [3, 9], [5, 3]]

然后我这样做:只有 @orderedObjects 的键:

@keys = @orderedObject.map { |key, value| key }

这给了我:

=>[29, 39, 1, 55, 32, 17, 4, 3, 5]

ALL 我需要的是 [29, 39, 1, 55, 32] 前 5 个索引。 但是我卡住了,我不知道该怎么做。

最佳答案

你可以做到

@objects = {1=>57, 4=>12, 3=>9, 5=>3, 55=>47, 32=>39, 17=>27, 29=>97, 39=>58}
@objects.sort_by { |_, v| -v }[0..4].map(&:first)
# => [29, 39, 1, 55, 32]
@objects.sort_by { |_, v| -v }.first(5).map(&:first)
# => [29, 39, 1, 55, 32]

关于ruby - 如何从哈希中选择前 5 个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24044646/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com