首页 > 解决方案 > 如何在 Julia 中按值对字典进行排序?

问题描述

我有两个数组:

a = [11,22,33,44,55]
b = [66,77,88,99,100]

我曾经通过以下方式创建字典:

combined_dict = Dict(zip(a, b))

如何按值对字典进行排序?

标签: julia

解决方案


内置字典类型 ( Dict) 是无序的,因此不清楚您要求什么 - 它无法排序。如果你想要一个有序的字典,你可以使用包中OrderedDict的一个OrderedCollections

julia> a = [11,22,33,44,55];

julia> b = [100,99,88,77,66];

julia> combined_dict = OrderedDict(zip(a, b))
OrderedDict{Int64,Int64} with 5 entries:
  11 => 100
  22 => 99
  33 => 88
  44 => 77
  55 => 66

为了按值排序,您可以将byvalue=true用作排序的关键字参数(byvalue=false是默认值,即按键排序):

julia> sort(combined_dict; byvalue=true)
OrderedDict{Int64,Int64} with 5 entries:
  55 => 66
  44 => 77
  33 => 88
  22 => 99
  11 => 100

推荐阅读