- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Scala 的第二个晚上,我抵制在 Scala 中写东西的冲动,就像我过去在 Java 中做的那样,并试图学习所有的习语。在这种情况下,我只想使用诸如闭包、映射和列表理解之类的东西来计算平均值。不管这是否是计算平均值的最佳方法,我只想知道如何在 Scala 中做这些事情,仅用于学习目的
这是一个例子:下面的平均方法几乎没有实现。我有其他几种方法来查找单个用户 ID 使用 TraversableLike 的 find 方法(我认为)给出的评级,但实际上没有更多特定于 Scala 的方法。我将如何计算给定 List[RatingEvent] 的平均值,其中 RatingEvent.rating 是一个 double 值,我会以类似 Scala 的方式计算该 List 的所有值的平均值?
package com.brinksys.liftnex.model
class Movie(val id : Int, val ratingEvents : List[RatingEvent]) {
def getRatingByUser(userId : Int) : Int = {
return getRatingEventByUserId(userId).rating
}
def getRatingEventByUserId(userId : Int) : RatingEvent = {
var result = ratingEvents find {e => e.userId == userId }
return result.get
}
def average() : Double = {
/*
fill in the blanks where an average of all ratingEvent.rating values is expected
*/
return 3.8
}
}
sum([re.rating. for re in ratingEvents]) / len(ratingEvents)
reduce(lambda x, y : x + y, [re.rating for re in ratingEvents]) / len(ratingEvents)
最佳答案
如果您要对事物进行数学运算,请使用 List
并不总是最快的方式,因为 List
不知道多久了——所以ratingEvents.length
花费的时间与长度成正比。 (不是很多时间,当然,但它确实必须遍历整个列表才能告诉。)但是如果您主要操作数据结构并且只是偶尔需要计算总和或其他什么,那么它不是时间关键的核心您的代码,然后使用 List
是花花公子。
无论如何,规范的方法是使用折叠来计算总和:
(0.0 /: ratingEvents){_ + _.rating} / ratingEvents.length
// Equivalently, though more verbosely:
// ratingEvents.foldLeft(0.0)(_ + _.rating) / ratingEvents.length
ratingEvents.map(_.rating).sum / ratingEvents.length
关于Scala - 计算 List[SomeObj] 中 SomeObj.double 的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3498784/
我正在使用 Scala 的第二个晚上,我抵制在 Scala 中写东西的冲动,就像我过去在 Java 中做的那样,并试图学习所有的习语。在这种情况下,我只想使用诸如闭包、映射和列表理解之类的东西来计算平
所以这更像是一个问题,因为“不知道正确的词,因此我无法用谷歌搜索它”(我认为)。 我一直对 javascript 感到疑惑。可以创建两种“类型”的对象。 一个是:(或通过使用原型(prototype)
有没有len(someObj)没有调用someObj的__len__函数的情况? 我最近用后者替换了前者以(成功)加速一些代码。我想确保不存在 len(someObj) 与 someObj.__len
我见过几个这样的代码示例: if not someobj: #do something 但我想知道为什么不这样做: if someobj == None: #do something
我想实现一个字符串类,它可以选择在堆栈或堆上创建内部缓冲区。这样我就可以像这样考虑该字符串的外观: String str_on_heap; String str_on_stack; 会很优雅。但是,后
我有一个关于在 JSF 中将对象列表输出为逗号分隔列表的问题。 让我们说: public class SomeObj { private String name; ... constructo
好吧,这可能看起来很荒谬,但我经常看到使用引用删除动态分配内存的代码如下所示: Obj* ptr = &someObj; delete ptr; 而不是看起来合乎逻辑的选择: delete &some
我有一个 map 对象的模拟 @Mock Map statusNode; 我写这个是为了减少代码量 when(statusNode.get("ratePlanId")).thenReturn(
您好,我是 Javascript 的新手,我很难理解用 javascript 编写的语句。声明是 var lthis = this, someObj 我们将不胜感激任何形式的帮助。如果有主题的指针/名
我正在使用 JavaScript 进行实际的面向对象编程,我遇到了两种不同的方法来扩展现有对象的原型(prototype)。 方法一: Something.prototype.someFunc = f
我是一名优秀的程序员,十分优秀!