我了解到我可以通过下面的代码显示字典中最高的键和值
// champions dictionary
var champions = ["Ekko": 20, "Ahri": 10, "Vayne": 2, "Neeko": 25, "Zed": 6]
let greatestChampion = champions.max { a, b in a.value < b.value }
print greatestChampion // optional(("Ekko": 20))
Run Code Online (Sandbox Code Playgroud)
我的问题是如何显示 3 个价值最高的英雄?示例结果将是
print greatestChampion // optional(("Ekko": 20, "Neeko": 25, "Ahri": 10))
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我很想学习如何做到这一点。
max 方法只能返回一个值。如果需要获取前 3 个元素,则需要按降序对它们进行排序,并使用前缀方法获取前 3 个元素
let greatestChampion = champions.sorted { $0.value > $1.value }.prefix(3)
print(greatestChampion)
Run Code Online (Sandbox Code Playgroud)
这将打印
[(key: "Neeko", value: 25), (key: "Ekko", value: 20), (key: "Ahri", value: 10)]
| 归档时间: |
|
| 查看次数: |
244 次 |
| 最近记录: |