【发布时间】:2023-10-29 05:49:01
【问题描述】:
我正在解决一个问题,以获取两个列表,例如 (1,2,3) 和 (a,b) 并返回一个列表 ((1,a)(1,b)(2,a) (2,b)(3,a)(3,b)) 仅使用映射和展平。
这个问题需要我定义一个函数如下:
def product[A](xs: List[A], ys: List[A])= {
并在这个函数中得到结果。我对 Scala 比较陌生,并且习惯于 python 和 java 之类的语言。
我已经走到这一步了:
def product[A](xs: List[A], ys: List[A])= {
for(y <- ys){
println(xs.map(x=> (x,y)))
}
}
这将返回如下内容:
列表((1,a), (2,a), (3,a))
列表((1,b), (2,b), (3,b))
我不确定现在如何组合这些列表。在 python 中,我会做一些事情,比如创建一个新的列表变量,将这两个列表都附加到该列表中,然后将其展平,这样我就有一个列表。但是,我对 scala 感到相当困惑,因为似乎不允许我在函数中定义新变量。此时如何合并这些列表并将它们展平?
【问题讨论】:
标签: list scala mapping flatten