【问题标题】:correct use of scala Map keyset正确使用 scala Map 键集
【发布时间】:2015-06-02 00:56:31
【问题描述】:

我对如何从 Scala Map 派生密钥大惊小怪。 有问题的地图很简单:

下面是从 Scala Map 派生密钥的函数:

def extractKey(myMap: Map[String, String]): String {
     //process myMap
      myMap = Map("SSN" -> "1")


      //return "SSN"
}

val myMap = Map("Visa Number" "10")

如何从中提取字符串 Visa Number?

好的,到目前为止我已经尝试了很多: myMap.keySet 我从中派生了一个 Set 为:scala.collection.immutable.Set[String] = Set("Visa Number")

我有点困惑,要继续。

我尝试了以下方法: myMap.keys 这返回了一个 Iterable[String] = Set("Visa Number")

我还尝试了以下方法:

myMap.keysIterator that returned an Iterator[String]

那么,从 Map myMap 派生密钥的最佳方法是什么

现在,如果我有一个更长的地图怎么办:

myMapLonger = Map("SSN" -> "10", "AMEX" -> 11)

那么我将如何捕获密钥并将它们放入列表中?

谢谢

【问题讨论】:

  • 我无法得到你想要的。 myMapLonger.keySet.toListmyMapLonger.keysIterator.toList 不够吗?
  • 描述您要查找的函数的输入和返回类型
  • 我将围绕这个问题添加更多上下文。 @ymonad ..我想要的只是从地图中提取密钥作为字符串或列表
  • @Daenyth 我会更新问题
  • @ymonad,我觉得 myMapLonger.keysIterator.toList 就足够了

标签: scala dictionary


【解决方案1】:
 Map("SSN" -> "10", "AMEX" -> 11).keys.toSeq

 Map("SSN" -> "10", "AMEX" -> 11).toSeq.map(_._1)

【讨论】:

    【解决方案2】:

    一种方法是在给定的Map 上应用unzip

    val (keys,values) = Map("SSN" -> "10", "AMEX" -> 11).unzip
    

    它提供了两个列表,第一个带有键的条目,第二个带有值的条目

    keys: List(SSN, AMEX)
    values: List(10, 11))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-26
      • 2015-04-15
      • 2022-01-10
      • 2018-05-07
      • 1970-01-01
      • 2020-09-12
      相关资源
      最近更新 更多