gpt4 book ai didi

scala - 如何迭代列表以创建 map ?

转载 作者:行者123 更新时间:2023-12-01 09:52:18 25 4
gpt4 key购买 nike

我有两个函数可以迭代列表并从中制作 map 。

  def indexedShade: Map[String, Color] =
myTextFile.map(c => (c.toShade, c)).toMap
def indexedQuantity: Map[String, Color] =
myTextFile.map(c => (c.toQuantity, c)).toMap

由于我多次遍历 myTextFile,我想只遍历一次并创建所需的两个 map 。如何创建一个仅迭代一次 并返回两次 Map[String, Color] 的函数?

最佳答案

如果您真的只需要迭代一次并即时构建 map,您可以使用 foldLeft 来完成:

val (indexedShade, indexedQuantity) = myTextFile
.foldLeft((Map.empty[String, Color], Map.empty[String, Color]))((acc, cur) =>
(acc._1 + (cur.toShade -> cur), acc._2 + (cur.toQuantity -> cur)))

关于scala - 如何迭代列表以创建 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53761860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com