我有一个地图(Map),其中每个值都是一组元组(Tuples)的列表,例如:
List(('a',1), ('b', 4), ('c', 3)....)
什么是最具Scala特色的方法,可以将每个值仍保留在列表中,但仅为每个元组的第二个元素进行更改?
List(1,4,3)
我已经尝试过
myMap.mapValues(x => x._2)
我明白了
error: value _2 is not a member of List[(Char, Integer)]
有什么小建议吗?
我有一个地图(Map),其中每个值都是一组元组(Tuples)的列表,例如:
List(('a',1), ('b', 4), ('c', 3)....)
什么是最具Scala特色的方法,可以将每个值仍保留在列表中,但仅为每个元组的第二个元素进行更改?
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
方法接收的参数是List[(Char,Integer)]
,所以你需要将其进一步映射到元组的第二个元素。
val a = List(('a',1), ('b', 4), ('c', 3))
a.map(_._2)
myMap.map(pair => (pair._1, pair._2.map(_._2)))
unzip
,它将元组列表转换为列表元组。如果您实际上需要从元组中获取两个值,这将非常有用。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)