我有以下列表:計數多少次的任何項目出現在斯卡拉列表
val list = List("this", "this", "that", "there", "here", "their", "where")
我想算「這個」或「是」出現了多少次。我可以這樣做:
list.count(_ == "this") + list.count(_ == "that")
是否有最簡潔的方式做到這一點?
我有以下列表:計數多少次的任何項目出現在斯卡拉列表
val list = List("this", "this", "that", "there", "here", "their", "where")
我想算「這個」或「是」出現了多少次。我可以這樣做:
list.count(_ == "this") + list.count(_ == "that")
是否有最簡潔的方式做到這一點?
您可以count
多次發生一次。無需撥打count
兩次。
scala> list.count(x => x == "this" || x == "that")
res4: Int = 3
scala> list.count(Set("this", "that").contains)
res12: Int = 3
如果需要使用相同的大名單數在幾個不同的地方的話:
val m = list.groupBy(identity).mapValues(_.size).withDefaultValue(0)
會給你方便Map
與所有計數,所以你可以做
scala> m("this") + m("that")
res11: Int = 3
在'this'之後加'''' – ryan
非常相似例如:
val s = Seq("apple", "oranges", "apple", "banana", "apple", "oranges", "oranges")
s.groupBy(identity).mapValues(_.size)
而結果是
Map(banana -> 1, oranges -> 3, apple -> 3)
而對於某些產品:
s.groupBy(identity).mapValues(_.size)("apple")
list.count(L =>升==「這個「|| l ==」那個「)。這對你有用嗎? – Jegan