簡體   English   中英

如何在哈希中獲取min鍵值對

[英]How to get min key value pair in hash

我想獲取哈希值中的最小值。

輸入:

test = {'a'=> 1, 'b'=> 2, 'c' => 0.4, 'd' => 0.32, 'e' => 0.03, 'f' => 0.02, 'g'=> 0.1}

預期結果:

{'f'=> 0.02}

我怎樣才能得到預期的結果?

我需要所有最小的鍵/值對。 如果{'a'=>1,'b'=>1,'c'=>2} ,預期結果應為{'a'=>1,'b'=>1}

[test.min_by{|k, v| v}].to_h


更改后的問題答案:

test.group_by(&:last).min_by(&:first).last.to_h # => {"f"=>0.02}

要么

 test.group_by(&:last).min_by(&:first).last.to_h # => {"f"=>0.02} 
test.select { |_, v| v == test.values.min }

為了提高效率:

min_val = test.values.min
test.select { |_, v| v == min_val }

根據您的數據

在Ruby控制台上運行以下命令: -

test = {'a'=> 1, 'b'=> 2, 'c' => 0.4, 'd' => 0.32, 'e' => 0.03,
'f' => 0.02, 'g'=> 0.1}

Hash[*test.sort_by(&:last)[0]]

產量將按照您的預期

 => {"f"=>0.02} 

您也可以在不使用.min方法的情況下實現此目的:

def min_key_value_pair (test)
  if test == {}
       return nil
  else
       test = test.sort_by {|k, v| v}
       test[0]
   end
end

我必須為我正在上課的課程做類似的事情。 我們還必須返回JUST THE KEY。 為什么你會做同樣的事情只返回test[0][0]希望這是有幫助的!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM