我正在寻找一种以下列方式加入多个列表的方法:
ListA a b c
ListB 1 2 3 4
ListC + # * § %
..
..
..
Resulting List: a 1 + b 2 # c 3 * 4 § %
In Words:按顺序排列的元素,从第一个列表开始合并到结果列表中。任意数量的输入列表的长度可能会有所不同。
我使用了多种带有 zip 变体、滑动迭代器的方法,但都没有奏效,尤其是处理不同的列表长度。 Scala 中必须有一种优雅的方式;)
最佳答案
val lists = List(ListA, ListB, ListC)
lists.flatMap(_.zipWithIndex).sortBy(_._2).map(_._1)
这是不言自明的。它只是将每个值与其在各自列表中的位置一起压缩,按索引排序,然后将值拉回来。
关于scala - 组合任意长度的多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19097078/