Swift怎么求字典中所有元素的加权平均数?

标签: Swift
发布时间: 2017/12/22 14:41:46
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一个字典:

let tempDict = [100:2, 101:3, 102:4]

我需要求加权平均数,我现在代码这样写:

let keyMultValues = 100*2+101*3+102*4
let valTotal = 2+3+4
let final = keyMultValues/valTotal

我知道我可以在字典里遍历所有的条目,但是我想也许有一个更高效更简洁的方法来做这件事。

比下面这段代码更优雅?

var keyMultValues = 0.0
tempDict.forEach({
    keyMultValues += $0.key*$0.value
})
let valTotal = reduce(priceDict.values, 0, +)


解决方法 1:

这样写:

let keyValueProductsSum = dict.lazy.map(*).reduce(0, +)
let valueSum = dict.values.reduce(0, +)
let weightedAverage = keyValueProductsSum / valueSum


官方微信
官方QQ群
31647020