swift - 如何在 swift 中对不同字典中同一键的多个值求和?

标签 swift dictionary sum

我是 Swift 和 iOS 开发的新手。一般来说。我想知道如何对不同词典中同一键的多个值求和。例如我有

20 个具有相同键值对的字典 [String: AnyObject] 例如"Height": 20 我想将这些求和并计算平均值。 例如:

// Example dictionary 
let player17: [String: AnyObject] = [
    "Name": "Les Clay",
    "Height": 42,
    "Soccer Experience": true,
    "Guardian Name(s)": "Wynonna Brown"
]

//在这里使用任何对象,因为它们都进入一个大数组

最佳答案

您可以使用reduce 将数字相加,如下所示:

let totalHeight = allPlayers.reduce(0) { (p, c) -> Int in
    return p + (c["Height"] as! Int)
}

注意: c["Height"] 为! Int 方法需要硬知识,即 "Height" 键存在于每个字典中,其值是 Int 类型。否则,这将在运行时产生异常。

如果您的一些字典中没有正确的键,或者包含不同类型的值,您需要预先过滤或使用可选的转换,例如

return p + ((c["Height"] as? Int) ?? 0)

关于swift - 如何在 swift 中对不同字典中同一键的多个值求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38423300/

相关文章:

objective-c - 在 Swift 中实现 avatarImageWithUserInitials

swift - 叶模板未呈现 vapor 3.0

swift - 连接到平移手势的 y 轴上的中心对象

css - Sass 映射循环的可能性

c++ - 二维数组重载

SAS,缺失值的总和

ios - NSManagedObject 和 Codable 用于存储在服务器和本地存储中的类

dictionary - 在 golang 中使用私有(private) map 、 slice 的最佳做法是什么?

python - 使用数组进行二维求和 - Python

mysql - Zend 框架 - mysql 查询