微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

scala – 组合多个任意长度的列表

我正在寻找一种以下列方式加入多个列表的方法

ListA a b c
ListB 1 2 3 4
ListC + # * § %
..
..
..

Resulting List: a 1 + b 2 # c 3 * 4 § %

在单词中:元素按顺序排列,从第一列开始合并到结果列表中.任意数量的输入列表的长度可能会有所不同.

我使用多种方法与zip,滑动迭代器的变体,但没有工作,特别是照顾不同的列表长度.必须有一个优雅的方式在scala;)

解决方法

val lists = List(ListA,ListB,ListC)

lists.flatMap(_.zipwithIndex).sortBy(_._2).map(_._1)

这是很自明的.它只是在各个列表上对其各个值进行拉链,按索引进行排序,然后将其退出.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐