2013-05-17 4 views

ответ

10

Должно быть легко достичь:

(a zip b) zip c map { 
    case ((x, y), z) => (x, y, z) 
}; 
+6

или '(a, b, c) .zipped.toList' –

+0

Спасибо alex23 и Myserious Dan. Это работает. Теперь это выглядит так легко решить. – Srinivas

6

Использование:

(a zip b) zip c map { case ((av,bv),cv) => (av,bv,cv) } 

Примечание: Это шо результирует список результатов из кратчайшего из a,b,c. Если вы хотите, чтобы список результатов дополнялся значениями по умолчанию, используйте zipAll.

12

Если у вас есть два или три списка, которые вы должны Zipped вместе вы можете использовать застегнул

val a = List("a", "b", "c") 
val b = List(1, 2, 3) 
val c = List(4, 5, 6) 

(a,b,c).zipped.toList 

Это приводит к: List((a,1,4), (b,2,5), (c,3,6))

Смежные вопросы