gpt4 book ai didi

scala - 类似于 Python 字典的适当 Scala 集合

转载 作者:行者123 更新时间:2023-12-04 17:59:37 24 4
gpt4 key购买 nike

我有一个迭代返回 (key, value) 的算法.我想要做的是将这些结果存储在一个结构中,如果 key不存在,它会添加它和对应的value .现在,如果键存在,它将附加 value到现有的值数组。

在 python 中,我可以使用具有以下格式的 python 字典来执行此操作:

dict = {'key1': [val1, val2, val3],
'key2': [val4, val5],
'key3': [val6], ... }

简单地做:
if key in dict.keys():
dict[key].append(value)
else:
dict[key] = [value]

我如何在 Scala 中做到这一点?

最佳答案

也许是这样的?

scala> def insert[K,V](k: K, v: V, m: Map[K, List[V]]): Map[K, List[V]] = {
| if (m contains k) m + (k -> (m(k) :+ v))
| else m + (k -> List(v)) }
insert: [K, V](k: K, v: V, m: Map[K,List[V]])Map[K,List[V]]

scala> insert('b', 23, Map('b' -> List(2)))
res30: Map[Char,List[Int]] = Map(b -> List(2, 23))

scala> insert('b', 23, Map('c' -> List(2)))
res31: Map[Char,List[Int]] = Map(c -> List(2), b -> List(23))

或者,结合 Sergey 的非常好的建议:
def insert[K,V](k: K, v: V, m: Map[K, List[V]]): Map[K, List[V]] =
m + (k -> (m.getOrElse(k, List()) :+ v))

关于scala - 类似于 Python 字典的适当 Scala 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37204822/

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