代码打印出字典中的最高分。如何打印第二高分。我想打印前两个分数。
import UIKit
var people: [[String:Any]] = [
[
"firstName": "Sam",
"lastName": "Newton",
"score": 13
],
[
"firstName": "Joe",
"lastName": "Mckenzie",
"score": 23
],
]
var topPerson = people[0]
var bestScore = topPerson["score"] as! Int
var bestScore1 = topPerson["score"] as! Int
for person in people {
if let score = person["score"] as? Int {
if bestScore < score {
bestScore = score
topPerson = person
}
}
}
if let first = topPerson["firstName"] as? String,
let second = topPerson["lastName"] as? String {
print("\(first) \(second)")
}
答案 0 :(得分:0)
添加第二个变量以跟踪第二高分。
在for循环中遍历数组时,
在检查当前元素是否是新的最高分(if bestScore < score
)之后,添加&#34;否则&#34;科。
在那里检查它是否高于第二个变量中存储的分数。如果是,则将此分数分配给第二个变量。
在&#34; if&#34;在将得分分配给bestScore之前,将bestScore分配给变量,以跟踪第二高分。
答案 1 :(得分:0)
更通用的解决方案可能是按分数对字典进行排序;然后,您可以通过检查字典中的n-1索引来获得前n个结果。