gpt4 book ai didi

arrays - 迭代一系列字典以获得最高的 gpa

转载 作者:搜寻专家 更新时间:2023-11-01 06:00:23 25 4
gpt4 key购买 nike

家庭作业问题。我需要遍历一系列字典以获得最高的 gpa 并打印学生的名字和姓氏。我在访问字典条目的 gpa 字段时遇到问题。

// Task 6
var highestGPA = 0.0
var students : [[String:Any]] =
[["firstName": "John", "lastName": "Wilson", "gpa": 2.4],
["firstName": "Nancy", "lastName": "Smith", "gpa": 3.5],
["firstName": "Michael", "lastName": "Liu", "gpa": 3.1]]

for index in students {
if let val = (_,_,"gpa":key) {
highestGPA = val
}
}

预期的结果是它遍历字典数组并获得最高的 gpa。实际结果是编译错误“二元运算符‘>’无法应用于类型为 (,,String) 和 Double 的操作数。所以它似乎正在获取字符串“gpa”而不是 gpa 的值

编辑:我还尝试了以下代码来获取“gpa”字段中的值并将其转换为 double 值。

for index in students   {
myGPA = Double(index["gpa"])
if myGPA > highestGPA {
highestGPA = myGPA
}
}

我收到编译错误:错误:无法使用类型为“(Any?)”的参数列表为类型“Double”调用初始化程序 myGPA = Double(索引["gpa"])

最佳答案

您可以使用Array 函数max 来确定GPA 最高的学生。

let student = students.max { $0["gpa"] as? Double ?? 0 < $1["gpa"] as? Double ?? 0 }

print(student?["firstName"]) // Nancy
print(student?["gpa"]) // 3.5

关于arrays - 迭代一系列字典以获得最高的 gpa,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54318452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com