【发布时间】:2020-10-28 13:59:57
【问题描述】:
我在 Scala 中有以下 list of maps:
val list = List(Map( "age" -> 25, "city" -> "London", "last_name" -> "Smith"),
Map("city" -> "Berlin", "last_name" -> "Robinson"))
我希望遍历映射列表并检查键 "age" 是否存在。如果没有,我想创建条目并将其放入地图中。到目前为止,我已经尝试过:
val tmp = list.map( item => if (!item.contains("age")) item.updated("age",5) else item)
print(tmp)
效果很好,我只是想知道是否有更有效的方法来做到这一点(也许是理解或其他什么?)!任何建议都会被采纳
【问题讨论】:
-
你
listval 类型被推断为Seq[Map[String, Any]]因为你混合了 int 和 string 值类型。所以最初的列表可能有问题。 -
for-comprehensions 只是
map、flatMap等的语法糖。所以那里没有效率增益。 -
您想检查至少一张地图是否有密钥?还是所有人都必须拥有它?
标签: scala dictionary data-structures functional-programming