Подтвердить что ты не робот

Как вы превращаете список Scala в пары?

Я пытаюсь разбить Scala список как List(1,2,3,4) на пары (1,2) (2,3) (3,4), что это простой способ сделать это?

4b9b3361

Ответ 1

val xs = List(1,2,3,4)
xs zip xs.tail
  // res1: List[(Int, Int)] = List((1,2), (2,3), (3,4))

Как говорят документы, zip

Возвращает список, сформированный из этого списка, и другую итеративную коллекцию путем объединения соответствующих элементов в парах. Если один из двух коллекции больше, чем другие, остальные элементы игнорируются.

Итак, List('a,'b,'c,'d) с z List('x,'y,'z) - List(('a,'x), ('b,'y), ('c,'z)) с окончательным 'd первого игнорируется.

В вашем примере tail of List(1,2,3,4) - List(2,3,4), чтобы вы могли видеть, как эти zip вместе находятся в парах.

Ответ 2

Чтобы создать список пар (например, кортежи), попробуйте это

List(1,2,3,4,5).sliding(2).collect{case List(a,b) => (a,b)}.toList

Ответ 3

List(1,2,3,4).sliding(2).map(x => (x.head, x.tail.head)).toList
res0: List[(Int, Int)] = List((1,2), (2,3), (3,4))