scala - 如果存在其他外部键,如何获取带有映射键的新列表?
问题描述
输入:
type DeviceType = Any
val rh: Map[(String, String), String] = Map(("ss", "ex-ss") -> "MobileType", ("ud", "ex-ud") -> "DesktopType")
val lh: Map[String, DeviceType] = Map("ex-ss" -> 1, "ex-ud" -> "A@F4CC", "ex-zip" -> 30052)
预期输出: val res:Map[String, DeviceType] = Map("ss" -> 1, "ud" -> "A@F4CC", "ex-zip" -> 30052)
解决方案
所以,基本上你需要再创建一张地图来存储元组之间的连接,从rh
地图。
请参阅下面的代码以获取更多详细信息:
// Create device synonyms index, for instance: "ex-ss" -> "ss"
val deviceSynonyms: Map[String, String] = rh.keys.map(_.swap).toMap
val res: Map[String, DeviceType] = lh.map {
case (deviceName, deviceType) => deviceSynonyms.getOrElse(deviceName, deviceName) -> deviceType
}
这将产生预期的结果:
Map(ss -> 1, ud -> A@F4CC, ex-zip -> 30052)
推荐阅读
- c# - 使用 ActionName 属性时如何获取动作名称?
- sql-server - tsv 上的“BCP 复制失败”(没有进一步的错误消息信息)
- neural-network - 神经网络 y=f(x) 回归
- vba - 从一个工作簿复制到另一个工作簿后更新数据透视表数据源
- c# - 将 ID 传递给 URL,ASP.NET MVC
- regex - 带有 ® 符号的正则表达式
- python - 使用python sqlalchemy,如何定义多列主键
- python - 在递归循环期间分配给 TensorFlow 变量
- python - Python - 格式化元组/字符串
- java - JUnit编译执行错误