11

各値が次のようなタプルのリストであるマップがあります。

List(('a',1), ('b', 4), ('c', 3)....)

各値を変更する最もスカラトン的な方法は何ですか?それでもリストですが、各タプルの2番目の要素にすぎません

List(1,4,3)

私が試してみました

myMap.mapValues(x => x._2)

そして、私は得る

error: value _2 is not a member of List[(Char, Integer)]

任意のヒント?

4

4 に答える 4

9

これを試して:

    myMap.mapValues(_.map(_._2))

に渡される値mapValuesは であるList[(Char,Integer)]ため、それをタプルの 2 番目の要素にさらにマップする必要があります。

于 2013-05-05T22:34:20.037 に答える
7

それはあなたのために働くでしょうか?

val a = List(('a',1), ('b', 4), ('c', 3))
a.map(_._2)
于 2013-05-06T04:12:31.707 に答える
2

mapValues() は myMap のビューを返すことに注意してください。myMap が可変で変更されている場合、対応する変更が mapValues によって返されるマップに表示されます。変換後に元のマップが本当に必要ない場合は、mapValues() の代わりに map() を使用することをお勧めします。

myMap.map(pair => (pair._1, pair._2.map(_._2)))
于 2013-05-05T22:57:07.137 に答える