对 Dict 列表的值进行排序

and*_*dro 5 julia

我有一本字典,其中的值是列表。我想对字典中的这些列表进行排序。

Dict("Income" => ["Top 10%", "Lower 50%", "31 - 40%", "21 - 30%", "41 - 50%", "Undetermined", "11 - 20%"], 
"Age" => ["65+", "55-64", "45-54", "Unknown", "18-24", "25-34", "35-44"], 
"Gender" => ["Undetermined", "Female", "Male"], 
"Device" => ["Desktop", "Mobile", "Tablet"])
Run Code Online (Sandbox Code Playgroud)

排序后将是:

Dict("Income" => ["11 - 20%", "21 - 30%", "31 - 40%", "41 - 50%", "Lower 50%", "Top 10%", "Undetermined"], 
"Age" => ["18-24", "25-34", "35-44", "45-54", "55-64", "65+", "Unknown"], 
"Gender" => ["Female", "Male", "Undetermined"], 
"Device" => ["Desktop", "Mobile", "Tablet"])
Run Code Online (Sandbox Code Playgroud)

Ant*_*llo 6

julia> mydict = Dict(  "Income" => ["Top 10%", "Lower 50%", "31 - 40%", "21 - 30%", "41 - 50%", "Undetermined", "11 - 20%"], 
                       "Age" => ["65+", "55-64", "45-54", "Unknown", "18-24", "25-34", "35-44"], 
                       "Gender" => ["Undetermined", "Female", "Male"], 
                       "Device" => ["Desktop", "Mobile", "Tablet"]);

julia> sort!.(values(mydict))
4-element Vector{Vector{String}}:
 ["11 - 20%", "21 - 30%", "31 - 40%", "41 - 50%", "Lower 50%", "Top 10%", "Undetermined"]
 ["18-24", "25-34", "35-44", "45-54", "55-64", "65+", "Unknown"]
 ["Female", "Male", "Undetermined"]
 ["Desktop", "Mobile", "Tablet"]

julia> mydict
Dict{String, Vector{String}} with 4 entries:
  "Income" => ["11 - 20%", "21 - 30%", "31 - 40%", "41 - 50%", "Lower 50%", "Top 10%", "Undetermined"]
  "Age"    => ["18-24", "25-34", "35-44", "45-54", "55-64", "65+", "Unknown"]
  "Gender" => ["Female", "Male", "Undetermined"]
  "Device" => ["Desktop", "Mobile", "Tablet"]
Run Code Online (Sandbox Code Playgroud)

当然,您有文本元素,因此实际的排序将基于字母数字特征。

  • 或 `foreach(sort!, value(mydict))` 来减少分配。 (2认同)