Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 提取元组列表中的第二个元组元素_Scala_Map_Tuples - Fatal编程技术网

Scala 提取元组列表中的第二个元组元素

Scala 提取元组列表中的第二个元组元素,scala,map,tuples,Scala,Map,Tuples,我有一个映射,其中每个值都是元组列表,例如: List(('a',1), ('b', 4), ('c', 3)....) 更改每个值最具规模的方法仍然是一个列表,但它只是每个元组的第二个元素 List(1,4,3) 我试过了 myMap.mapValues(x => x._2) 我得到 error: value _2 is not a member of List[(Char, Integer)] 有什么建议吗?试试这个: myMap.mapValues(_.map(_._

我有一个映射,其中每个值都是元组列表,例如:

List(('a',1), ('b', 4), ('c', 3)....)
更改每个值最具规模的方法仍然是一个列表,但它只是每个元组的第二个元素

List(1,4,3)
我试过了

myMap.mapValues(x => x._2)
我得到

error: value _2 is not a member of List[(Char, Integer)]
有什么建议吗?

试试这个:

    myMap.mapValues(_.map(_._2))
传递给
mapValues
的值是一个
列表[(Char,Integer)]
,因此您必须进一步将其映射到元组的第二个元素。

请注意,mapValues()返回myMap上的视图。如果myMap是可变的并已修改,则相应的更改将显示在mapValues返回的映射中。如果转换后确实不需要原始贴图,则可能需要使用map()而不是mapValues():


那对你有用吗

val a = List(('a',1), ('b', 4), ('c', 3))
a.map(_._2)

另一种方法是使用
解压
,将元组列表转换为列表元组。如果您实际上希望从元组中同时获取这两个值,那么它尤其有用

val list = List(('a',1), ('b', 4), ('c', 3))

val (letters, numbers) = list.unzip
// letters: List[Char] = List(a, b, c)
// numbers: List[Int] = List(1, 4, 3)
val list = List(('a',1), ('b', 4), ('c', 3))

val (letters, numbers) = list.unzip
// letters: List[Char] = List(a, b, c)
// numbers: List[Int] = List(1, 4, 3)