Как упаковать каждые два элемента в список для кортежа в scala? - PullRequest
1 голос
/ 24 марта 2020

Ввод:

val input = List(1, 3, 6, 7, 12)

Вывод будет:

val output = List((1, 3), (3, 6), (6, 7), (7, 12))

Ответы [ 3 ]

7 голосов
/ 24 марта 2020

А как же input.zip(input.tail)?

1 голос
/ 24 марта 2020

Вы можете использовать s sliding:

output.sliding(2, 1).map(l => (l(0), l(1))).toList

или:

output.sliding(2, 1).map { case List(a, b) => (a, b) }.toList
0 голосов
/ 24 марта 2020

Вы можете сделать это так:

input.sliding(2).toList.map(l => (l.head, l.tail.head))
...