【问题标题】:Correct Scala way to Loop/map 2 Lists and merge into 1 list正确的 Scala 方式循环/映射 2 个列表并合并到 1 个列表中
【发布时间】:2017-09-05 00:55:17
【问题描述】:

对于 Scala 来说非常新,例如有 2 个列表

val list1: List[Int] = List(10,11)
val list2: List[Int] = List(1,2,3)

想要创建这样的列表:

List((10,1),(10,2),(10,3),(11,1),(11,2),(11,3))

我该怎么做呢? 抱歉,如果之前有人问过这个问题,如果之前已经回答过,请随时将答案链接给我,我很乐意关闭这个,谢谢。

【问题讨论】:

    标签: scala list merge


    【解决方案1】:

    试试这个开始

    list1.flatMap(x => list2.map(y => (x, y)))
    

    ...对flatMapmap 的调用组合表明for 理解也可以工作...

    for (x <- list1; y <- list2) yield (x, y)
    

    ...可能还有其他方法。我相信在大多数情况下,编译器足够聪明,可以用等效于flatMapmap 方法的字节码替换for 理解,因此两者在性能方面应该是等效的(尽管我没有对此进行测试) ...

    【讨论】:

    • 谢谢!这很完美,产量很有趣。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 2020-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2016-04-18
    相关资源
    最近更新 更多