如何根据Julia中的键对词典进行排序?

Qwerty

我想在Julia中对以下字典进行排序,以便按键名的字母顺序打印键值。

fruits = Dict("Mangoes" => 5, "Pomegranates" => 4, "Apples" => 8);

执行上面的代码并输入后fruits,我得到的输出为:

fruits
Dict{String,Int64} with 3 entries:
  "Pomegranates" => 4
  "Apples"       => 8
  "Mangoes"      => 5

但是,我希望得到以下结果:

Apples       => 8
Mangoes      => 5
Pomegranates => 4
弗朗索瓦·费沃特(FrancoisFévotte)

这是因为字典中的朱莉娅(Dict)不下令:每个字典维护一套钥匙。当一个在此集合上进行迭代时,获取密钥的顺序尚未定义,并且可以随着插入新条目而变化。为了确保以特定顺序对字典条目进行迭代,可以做两件事。


第一种方法是(使用keys获取键集并对其进行排序,这在另一个答案中已经提出:

julia> fruits = Dict("Mangoes" => 5, "Pomegranates" => 4, "Apples" => 8);

julia> for key in sort!(collect(keys(fruits)))
           val = fruits[key]
           println("$key => $val")
       end
Apples => 8
Mangoes => 5
Pomegranates => 4


话虽如此,如果键的顺序很重要,则可能希望通过使用有序字典(OrderedDict在类型系统中反映这一事实,该字典是一种数据结构,其中的条目顺序是有意义的。更准确地说,一个OrderedDict保存将保留其条目插入的顺序。

可以OrderedDict从头开始创建一个,注意按顺序插入键,然后顺序将被保留。或者可以使用OrderedDict从现有的对象创建一个,该对象将按其键的升序对条目进行排序:Dictsort

julia> using OrderedCollections

julia> fruits = Dict("Mangoes" => 5, "Pomegranates" => 4, "Apples" => 8);

julia> ordered_fruits = sort(fruits)
OrderedDict{String,Int64} with 3 entries:
  "Apples"       => 8
  "Mangoes"      => 5
  "Pomegranates" => 4

julia> keys(ordered_fruits)
Base.KeySet for a OrderedDict{String,Int64} with 3 entries. Keys:
  "Apples"
  "Mangoes"
  "Pomegranates"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据熊猫中数据框的日期列对词典列表进行排序

如何在不使用Python中使用sort()的情况下根据一个特定键的值对词典列表进行排序

如何按值对词典列表进行排序

使用列表数据对词典中的列表进行排序

使用键“ MYDICT.get”作为对词典进行排序的一种方式

按其他列表或词典对词典进行排序

按缺失值的顺序对词典列表进行排序

使用自定义排序功能按键对词典列表进行排序

如何按日期时间键对python词典进行排序?

如何根据键对地图进行排序

如何将成对词典添加到其他词典中?

如何根据给定的键列在列表中组合多个词典?

如何对大型词典进行排序

根据键对少数词典进行的操作

根据数组中相同键的顺序对哈希键进行排序

通过拆分密钥对词典进行分组并创建新词典

Reshaper Respeller插件:如何对词典和添加的单词进行版本控制

如何按列表中的值对key:list词典进行排序?

如何根据Smalltalk中的有序集合中的键进行排序

在Julia中按多个键对字典数组进行排序

如何根据对象属性对数组中的对象键进行排序?

如何根据不同级别的一组键对Python中的列表进行排序

如何遍历字典列表并根据 Bash 中的键对输出进行排序?

如何根据一个键对文件中的对象进行单个 json 排序

根据键对字典进行排序

根据键过滤Python中的词典列表

根据匹配的键:值对组合词典列表中的词典

如何首先根据键对数组进行排序?

如何根据对象键对数组 ob 对象进行排序?