【问题标题】:How to create a map out of two lists?如何从两个列表中创建地图?
【发布时间】:2021-01-18 23:06:02
【问题描述】:

我有两个列表

val a = List(1,2,3)
val b = List(5,6,7)

我想创建一个像这样的地图:

val h = Map(1->5, 2->6, 3->7) 

基本上遍历两个列表并分配键值对。

如何在 Scala 中正确地做到这一点?

【问题讨论】:

    标签: scala


    【解决方案1】:

    您可以将zip 的列表合并成一个元组列表,然后调用toMap

    (a zip b) toMap
    

    请注意,如果一个列表比另一个长,它将被截断。


    例子:

    val a = List(1, 2, 3)
    val b = List(5, 6, 7)
    
    scala> (a zip b) toMap
    res2: scala.collection.immutable.Map[Int,Int] = Map(1 -> 5, 2 -> 6, 3 -> 7)
    

    带截断:

    val c = List("a", "b", "c", "d", "e")
    
    scala> (a zip c) toMap
    res3: scala.collection.immutable.Map[Int,String] = Map(1 -> a, 2 -> b, 3 -> c)
    
    (c zip a) toMap
    res4: scala.collection.immutable.Map[String,Int] = Map(a -> 1, b -> 2, c -> 3)
    

    【讨论】:

      猜你喜欢
      • 2014-11-06
      • 2015-09-27
      • 2021-02-08
      • 1970-01-01
      • 1970-01-01
      • 2022-10-18
      • 2022-08-03
      • 2011-09-21
      相关资源
      最近更新 更多