#scala
#scala
Вопрос:
У меня есть карта colValues: Map[Int, String]
, и данные будут:
(15043 -> "226", 15044 -> "NA", 15045 -> "36", 15046 -> "0", 15047 -> "47", 15048 -> "NA")
Я хочу изменить все значения с «NA» на «0» colValues
, нам не нужна другая переменная. Другими словами, после обработки colValues
будет :
(15043 -> "226", 15044 -> "0", 15045 -> "36", 15046 -> "0", 15047 -> "47", 15048 -> "0")
Комментарии:
1. Это довольно простая
.map()
операция. Что вы пробовали? Что не сработало?2. Вам это не нужно
filter
. Это пример вопроса XY
Ответ №1:
Вам нужно только map
colValues.map { case (a, b) => if (b == "NA") a -> "0" else a -> b }
Ответ №2:
Вы можете сделать это с помощью mapValues
:
colValues.view.mapValues(v => if (v == "NA") "0" else v).toMap
Скорее всего, вы хотите преобразовать в a Map[String, Int]
, хотя. Один из способов сделать это
colValues.view.mapValues(_.toIntOption.getOrElse(0)).toMap