我有一个字典数组,其中包含In [301]: bnds=np.array((np.zeros(8),np.ones(8))).T
In [302]: bnds
Out[302]:
array([[ 0., 1.],
[ 0., 1.],
[ 0., 1.],
[ 0., 1.],
[ 0., 1.],
[ 0., 1.],
[ 0., 1.],
[ 0., 1.]])
In [303]: minimize(foo, x0, method='SLSQP',bounds=bnds)
Out[303]:
fun: -14.999999999999773
jac: array([-2., -3., -4., -6., 0., 0., 0., 0., 0.])
message: 'Optimization terminated successfully.'
nfev: 20
nit: 2
njev: 2
status: 0
success: True
x: array([ 1., 1., 1., 1., 0., 1., 0., 0.])
键和NSDate
值(Double
),我想计算所有值的总和,如下所示:
[NSDictionary]
但我得到了这个奇怪的错误:
let sum = results.flatMap { $0.allValues.map { $0 as! Double } }.reduce(0, +)
任何人都知道我的总和计算是什么问题?
编辑:
我得到的值来自Core Data。这是我检索它们的方式:
Could not cast value of type '__NSTaggedDate' to 'NSNumber'
答案 0 :(得分:1)
fetch
核心数据.dictionaryResultType
会返回[[String:Any]]
。
返回数组的格式为:
[["dateDescr" : <date1>, "sumDescr" : <double1>], ["dateDescr" : <date2>, "sumDescr" : <double2>]]
映射键sumDescr
的值并添加它们,它总是很好的编程习惯来捕捉潜在的错误:
do {
let results = try context.fetch(request) as! [[String:Any]]
let sum = results.map { $0["sumDescr"] as! Double }.reduce(0.0, +)
} catch {
print(error)
}