首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Scala中将List[(Char,Int)]求和为Map[Char,Int]?

在Scala中,可以使用foldLeft函数将List[(Char, Int)]求和为Map[Char, Int]。foldLeft函数接受一个初始值和一个函数作为参数,将初始值和列表中的每个元素依次进行计算,并返回最终的结果。

下面是一个示例代码:

代码语言:txt
复制
val list = List(('a', 1), ('b', 2), ('c', 3))

val result = list.foldLeft(Map[Char, Int]()) {
  case (map, (char, num)) => map + (char -> (map.getOrElse(char, 0) + num))
}

println(result)

在这个示例中,初始值是一个空的Map[Char, Int]。foldLeft函数遍历列表中的每个元素,对于每个元素,使用模式匹配将元素解构为字符和整数。然后,通过更新Map中对应字符的值,将字符和整数求和。最后,将更新后的Map作为下一次迭代的初始值。

运行以上代码,输出结果为:

代码语言:txt
复制
Map(a -> 1, b -> 2, c -> 3)

这样就将List[(Char, Int)]求和为Map[Char, Int]了。

推荐的腾讯云相关产品和产品介绍链接地址:

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • scala 学习笔记

    从终端的打印可以看出,Scala从右值自动推导出了变量的类型。Scala可以动态语言似的编写代码,但又有静态语言的编译时检查。这对于Java中冗长、重复的类型声明来说是一种很好的进步。...基础数据类型 Scala中基础数据类型有:Byte、Short、Int、Long、Float、Double,Boolean,Char、String。...和Java不同的是,Scala中没在区分原生类型和装箱类型,int和Integer。它统一抽象成Int类型,这样在Scala中所有类型都是对象了。...通常的for语句如下: for (变量 <- 集合) { 语句块 } Scala中for表达式除了上面那样的常规用法,它还可以使用yield关键字将集合映射另一个集合: scala> val list...if item % 2 == 0) yield item list3: List[Int] = List(2, 4) 还可以做flatMap操作,解析2维列表并将结果摊平(将2维列表拉平一维列表):

    55820

    大数据之脚踏实地学12--Scala数据类型与运算符

    举例 scala> val x1 : Byte = 123 x1: Byte = 123 scala> x1 + 100 // Byte + Int 会自动升级Int res0: Int = 223...scala> val x2 : Int = 10000 x2: Int = 10000 scala> x2 + 1111.1 // Int + Double 会自动升级Double res1:...Double = 11111.1 scala> val x3 : Char = 'A' x3: Char = A scala> x3 + 1 // Char + Int 会自动升级Int res2...1).toChar // 将Int型的66强制转换为Char类型 res3: Char = B scala> (23.5/5).toInt // 将Double类型强制转换为Int类型 res5...(a <= b) = true 数学运算符 运算符 含义 + 和运算,如果加号两边数值,求和,如果加号两边包含字符串,则为拼接运算 - 减运算 * 乘法运算 / 除法运算,需要注意的是,如果分子分母均为整数

    78820

    大数据技术之_16_Scala学习_08_数据结构(下)-集合操作+模式匹配

    = "AAAAAAAAAABBBBBBBBCCCCCDDDDDDD"     // 方式一:不可变 Map,是有序的     def charCount1(mapMap[CharInt], ...c: Char): Map[CharInt] = {       // 向 Map 中添加键值对       // val map2 = map + (c -> (map.getOrElse(c, ... 0) + 1)) // 如果键c有,返回键c对应的值并加1,键c没有,返回0并加1     }     val map1 = Map[CharInt]()     println(sentence.foldLeft...[CharInt], c: Char): mutable.Map[CharInt] = {       // 向 Map 中添加键值对       map += (c -> (map.getOrElse...(c, 0) + 1)) // 如果键c有,返回键c对应的值并加1,键c没有,返回0并加1     }     val map2 = mutable.Map[CharInt]()     println

    1.6K00

    Scala 高阶(九):Scala中的模式匹配

    中关于模式匹配的内容,Scala中的模式匹配类似于Java中的switch语法,但是Scala在基于Java的思想上补充了特有的功能。...样例类仍然是类,和普通类相比,只是其自动生成了伴生对象,并且伴生对象中自动提供了一些常用的方法, apply、unapply、toString、equals、hashCode 和 copy。...例如该偏函数的输入类型List[Int],、需要的是第一个元素是 0 的集合,这就是通过模式匹配实现的。...PartialFunction[List[Int], Option[Int]]: 偏函数类型 该偏函数的功能是返回输入的 List 集合的第二个元素 举个例子: object Test_PartialFunction...// map转换 key不变 value两倍 val newList = list.map(tuple => (tuple._1, tuple._2 * 2)) // 模式匹配 对元素元素赋值

    1.5K30

    分布式机器学习:如何快速从Python栈过渡到Scala

    :Int = 123456 val long:Long = 1234567890 val float:Float = 123.45f val double:Double = 123.45d val char...,long,float,double,char,string,bool,unit,nil,name) 数据类型上看Scala的特点有: 与java类似支持的数据类型比较多,比如单、双精度浮点型都支持,不像...Python只有双精度; 区分Char和String,意味着单引号、双引号不能随便混用; Unit类型用于函数没有返回值时; Null表示空值; val定义的变量常量,其值不能改变,而var定义的则是变量...Array[Int](8) // 长度8,全是0的不可变数组 println(arr) // 直接打印数组看不到其内部元素,只能看到它的地址 println(arr.toBuffer) // 通过toBuffer...同样的ListBuffer是List的可变版本; 字典 字典在Scala中叫做映射; val map1 = Map("k1"->10, 2->1.5, 3.3->"abc") println(map1)

    1.2K20

    scala基础学习--scala教程

    自带的类型:这些都是类,scala没有类似int、long这样的基本数据类型 Byte、Short、Int、Long、Float、Double、Char、String、Boolean、 变量:不可变变量...Option[T] 是一个类型 T 的可选值的容器: 如果值存在, Option[T] 就是一个 Some[T] ,如果不存在, Option[T] 就是对象 None 。...映射map方法:返回集合的元素数量和源数据集合的元素数量一致 val xs = List(1, 2, 3, 4) val ys = xs.map((x: Int) => x * 10.0) 以下语句作用相同...: val ys = xs.map((x: Int) => x * 10.0) val ys = xs.map{(x: Int) => x * 10.0}             map函数只有一个输入参数...} } MapReduce的map和reduce都参考了函数式编程中的map和reduce的思想,scala本身支持函数式编程,所以也包含map和reduce

    1.3K90

    机器学习:如何快速从Python栈过渡到Scala

    :Int = 123456 val long:Long = 1234567890 val float:Float = 123.45f val double:Double = 123.45d val char...,long,float,double,char,string,bool,unit,nil,name) 数据类型上看Scala的特点有: 与java类似支持的数据类型比较多,比如单、双精度浮点型都支持,不像...Python只有双精度; 区分Char和String,意味着单引号、双引号不能随便混用; Unit类型用于函数没有返回值时; Null表示空值; val定义的变量常量,其值不能改变,而var定义的则是变量...Array[Int](8) // 长度8,全是0的不可变数组 println(arr) // 直接打印数组看不到其内部元素,只能看到它的地址 println(arr.toBuffer) // 通过toBuffer...同样的ListBuffer是List的可变版本; 字典 字典在Scala中叫做映射; val map1 = Map("k1"->10, 2->1.5, 3.3->"abc") println(map1)

    1.7K31

    Scala——多范式, 可伸缩, 类似Java的编程语言

    二 变量常量声明 定义变量或者常量的时候,也可以写上返回的类型,一般省略,:val a:Int = 10 常量不可再赋值 /** * 定义变量和常量 * 变量 :用 var 定义...byte 数组中 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 将字符从此字符串复制到目标字符数组 int...以上实例数组初始值 0,长度 3,计算函数a=>a+1:scala> Array.iterate(0,3)(a=>a+1) ; res1: Array[Int] = Array(0, 1, 2)...创建list val list = List(1,2,3,4) Nil长度0的list list遍历 foreach ,for list方法举例 filter:过滤元素 count:计算符合条件的元素个数...Map,新的 Map xs 组成 2 def -(elem1: A, elem2: A, elems: A*): Map[A, B] 返回一个新的 Map, 移除 key elem1, elem2

    3K20

    精心整理了100+Python字符串常用操作,收藏备用!

    字符串切片操作 检查字符串是否空 计算字符串中字符出现次数的多种方法 将 String 变量转换为 float、int 或 boolean 向字符串填充或添加零的不同方法 去掉字符串中的 space...Python 中字符串添加 X 个空格 如何在Python中替换字符串中的特定字符串实例 如何连接两个变量,一个是字符串,另一个是 Python 中的 int 在 Python 中的反斜杠上拆分字符串...在 Python 中将字符串中每个单词的首字母大写 仅在 Python 中的双引号后拆分字符串 在 Python 中以字节单位获取字符串的大小 在 Python 中比较字符串中的字符 在 Python...Python 中将字符串的第三个字母大写 将制表符大小设置指定的空格数 将两个字符串与某些字符进行比较 字符串格式化填充负数 单独替换字符串中的第一个字符 连接固定字符串和变量 将字符串拆分为多个字符串...(str_exp2) # Example 3 str_exp3 = ''.join(map(str, list_exp)) print(type(str_exp2)) print(str_exp2)

    14.5K20
    领券