Sorting 有可能在朱莉娅的字典里分类吗?

Sorting 有可能在朱莉娅的字典里分类吗?,sorting,dictionary,data-structures,julia,Sorting,Dictionary,Data Structures,Julia,我使用zip()like从两个数组中创建了一个字典 list1 = [1,2,3,4,5] list2 = [6,7,8,9,19] dictionary1 = Dict(zip(list1,list2)) 现在我想按键(list1)或list2对这本词典进行排序。有人能告诉我一种方法或功能,如何实现它吗?如果有必要对字典进行排序,则可能有用,但通常只需要对字典进行排序以进行输出,在这种情况下,可能需要以下内容: list1 = [1,2,3,4,5] list2 = [6,7,8,9,19]

我使用
zip()
like从两个数组中创建了一个字典

list1 = [1,2,3,4,5]
list2 = [6,7,8,9,19]
dictionary1 = Dict(zip(list1,list2))

现在我想按
键(list1)
list2
对这本词典进行排序。有人能告诉我一种方法或功能,如何实现它吗?

如果有必要对字典进行排序,则可能有用,但通常只需要对字典进行排序以进行输出,在这种情况下,可能需要以下内容:

list1 = [1,2,3,4,5]
list2 = [6,7,8,9,19]
dictionary1 = Dict(zip(list1,list2))
sort(collect(dictionary1))
。。。产生:

5-element Array{(Int64,Int64),1}:
 (1,6) 
 (2,7) 
 (3,8) 
 (4,9) 
 (5,19)
我们可以使用以下值对值进行排序:

sort(collect(zip(values(dictionary1),keys(dictionary1))))
。。。其中:

5-element Array{(Int64,Int64),1}:
 (6,1) 
 (7,2) 
 (8,3) 
 (9,4) 
 (19,5)

排序还采用一个
by
关键字,这意味着您可以执行以下操作:

julia> sort(collect(dictionary1), by=x->x[2])
5-element Array{Tuple{Int64,Int64},1}:
 (1,6)
 (2,7)
 (3,8)
 (4,9)
 (5,19)

还请注意,DataStructures.jl中有一个维护排序顺序的
SortedDict
,还有一个维护插入顺序的
orderedict
。最后,还有一个pull请求,它允许对
已排序的Dict
进行直接排序(但我需要完成并提交)。

基本中的Dict未排序,但您可以使用数据结构中的SortedDict。jl软件包:非常感谢您提供的完整答案。我认为这是一种很好的方法,可以对这样的数据结构进行排序。@Simon,你知道如何修复一个错误吗?这个错误是因为zip自动将键变成了“子字符串”<代码>错误:方法错误:数组{SubString{String},1}类型的对象不可调用,请使用方括号[]对数组进行索引。在按值排序时,这是一个比我的答案更简洁、更好的答案。:竖起大拇指:请不要混淆
SortedDict
orderedict
之间的区别!