Sorting swift2:从按值排序的字典中获取键数组

Sorting swift2:从按值排序的字典中获取键数组,sorting,dictionary,swift2,Sorting,Dictionary,Swift2,我试图从一个字典中获取一个数组,其中数组按值排序。例如: //dictionary contains [alpha:C],[beta:A],[gamma:B] 我的数组应该返回: //[beta, gamma, alpha] 我试过: let keys = Array(myDictionary.keys).sort({ (a,b) -> Bool in a.compare(b) == .OrderedAscending }) 但这将按键返回顺序: //[alp

我试图从一个字典中获取一个数组,其中数组按值排序。例如:

//dictionary contains [alpha:C],[beta:A],[gamma:B]
我的数组应该返回:

//[beta, gamma, alpha]
我试过:

let keys = Array(myDictionary.keys).sort({ (a,b) -> Bool in
        a.compare(b) == .OrderedAscending
    })
但这将按键返回顺序:

//[alpha, beta, gamma]
给你的字典

let dict = ["alpha":"C","beta":"A","gamma":"B"]
您可以使用此代码按值对键进行排序

let keysSortedByValue = dict.sort { $0.1 < $1.1 }.map { $0.0 }

// ["beta", "gamma", "alpha"]
let keysSortedByValue=dict.sort{$0.1<$1.1}.map{$0.0}
//[“贝塔”、“伽马”、“阿尔法”]
更新 此屏幕截图用于回答您下面的评论


尽管我点击了“接受”,但有些事情我还是不明白。这是:让dict=[“alpha”:“alpha”,“beta”:“beta”,“gamma”:“gamma”]首先返回beta,然后返回alpha和gamma。看来你的建议不管用properly@Mic:我刚刚测试了它,它正在返回
[“alpha”、“beta”、“gamma”]
。请看我在回答中添加的屏幕截图。您确定您正使用此输入吗?我怀疑你用的是一些大写字母……你是对的。因为很多测试都是0而不是1,所以我错过了。答案是可以接受的。对不起。如果我要使用大写字母,我必须记住这一点。@Mic:如果你想要不区分大小写的
String
排序,你可以对排序闭包中的参数应用
lowercaseestring
,例如
let keysSortedByValue=dict.sort{$0.1.lowercaseestring