我有一个充满了工作类型的白痴
作业有名称(字符串)和分数(Int)。
我设法将这些作业加载到一个Dict中,并且我想使用基于作业分数的排序方法对它们进行排序。然而,当我对数据集(称为作业)进行排序时,它给了我一个排序分数的新向量。
有什么办法在保留哪一份工作有具体分数的情况下对这份工作进行排序吗?
jobs = Dict([(nurse, nurse.score), (construction, construction.score),
(programmer, programmer.score), (retail, retail.score)])
sort(collect(values(jobs)))因此,如果我有护士的分数为3,程序员的分数为6,零售的分数为0,构造的分数为4,我希望输出是一个小块(或类似的东西),其中包含:
或者,更好的是,我是否可以根据值对其进行排序,但将输出作为一个向量而只包含作业呢?然后在后面的代码中引用那个向量?
发布于 2020-07-26 15:11:47
使用较少代码的排序算法,但我不知道它的性能,因此您将不会有一个小块:
sort(collect(jobs),by=x->x[2],rev=true)发布于 2020-07-26 16:58:34
目前,我认为建议的做法是:
julia> using DataStructures
julia> jobs = Dict("nurse"=>3, "construction"=>4, "programmer"=>6, "retail"=>0)
Dict{String,Int64} with 4 entries:
"programmer" => 6
"retail" => 0
"construction" => 4
"nurse" => 3
julia> sort!(OrderedDict(jobs), byvalue=true, rev=true)
OrderedDict{String,Int64} with 4 entries:
"programmer" => 6
"construction" => 4
"nurse" => 3
"retail" => 0这样你就可以得到一本你想要的字典,但是它是OrderedDict,所以它可以像你看到的那样排序。
https://stackoverflow.com/questions/33879158
复制相似问题