rns*_*nso 3 dictionary hashtable crystal-lang
是否可以在以下代码中按键或按值对哈希进行排序:
myhash.each_key do |key|
print myhash[key], "\t:\t", key, "\n"
end
Run Code Online (Sandbox Code Playgroud)
按键排序:
myhash = {5 => "five", 3 => "three", 2 => "two", 4 => "four", 1 => "one"}
myhash.keys.sort.each do |key|
print myhash[key], "\t:\t", key, "\n"
end
Run Code Online (Sandbox Code Playgroud)
产生
one : 1
two : 2
three : 3
four : 4
five : 5
Run Code Online (Sandbox Code Playgroud)
按值排序需要花费更多精力:
myhash.to_a.sort { |item1, item2| item1[1] <=> item2[1] }.each do |item|
puts item.join("\t:\t")
end
Run Code Online (Sandbox Code Playgroud)
产生
5 : five
4 : four
1 : one
3 : three
2 : two
Run Code Online (Sandbox Code Playgroud)
如果您希望结果为 value:key order,请更改
puts item.join("\t:\t")
Run Code Online (Sandbox Code Playgroud)
到
puts item.reverse.join("\t:\t")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
474 次 |
| 最近记录: |