swift - 如何根据键对字典进行排序并在 Swift 中对其各自的值进行排序
问题描述
我有一个字典,其中字符串作为键,int 数组作为值,我需要根据键对字典进行排序,并且数组值也应该进行排序。
var dicNumArray : Dictionary<String , [Int]> = ["q":[4,3,2,1,5],"a":[2,3,4,5,5],"s":[123,123,132,43,4],"t":[0,88,66,542,321]]
我需要的结果是字典本身,它按键排序,并且相应的值也被排序。
解决方案
您可以使用以下方法应用于字典的sorted
每个value
键值对mapValues
然后,您可以只使用sorted
比较字典键的谓词。
let result = dicNumArray.mapValues { $0.sorted() }
.sorted { $0.key < $1.key }
这将返回一个键值对元组数组。
由于字典不能按顺序信任,因此使用键值对数组是下一个最佳方法。
我们可以使用.key
and.value
来获取各自的值。
result.first?.key // First key
result.first?.value // First value
推荐阅读
- c# - ASP.NET Core 2.2 - 当浏览器(IE11 和 Edge)禁用 cookie 时是否可以使用 cookie 身份验证?
- python - 如何阻止随机项目被打印出一个字母一个字母
- javascript - 复选框以在选中/取消选中时提交不同于 1/0 或 true/false 的值
- java - Calendar.get(Calendar.DATE) 获取错误值
- java - 带数组的百家乐游戏在几轮后抛出异常
- mysql - Django:过滤注释值
- xml - 获取子节点名称
- c# - 在 C# 中使用 (INSERT SELECT FROM WHERE) 查询的正确方法是什么?
- javascript - 我可以在递归函数中进行哪些更改以使其正常工作?
- swift - 无法将项目添加到数组