[scala] zip/unzip 예시

scala 2017. 1. 10. 19:01


스칼라에서 zip과 unzip을 사용해서 얻을 수 있는 특별한 이득이 있을만한 예시를 소개한다. 


보통 zip과 unzip은 붙였다가 떼였다가 할 때 사용할 수 있다. 

val b = (List(1, 2, 3) zip List(List(0.0), List(0.2), List(0.3))).unzip
println(b)


다음은 결과이다. 


(List(1, 2, 3),List(List(0.0), List(0.2), List(0.3)))





리스트를 붙여서 특정 정보가 있을 때는 보여주지 않으려 할 때, 

즉, 다음 예시에서 List(0.0)이 존재하면 아예 그 값은 따로 저장하고 싶지 않을 때 사용할 수 있다. 


val a = (List(1, 2, 3) zip List(List(0.0), List(0.2), List(0.3))) .filter(!_._2.forall(_ == 0.0)).unzip
println(a)


이전 예시를 실행하면, 첫번째 값이 List(0.0)이라 filter에서 걸렸기 때문에 1 키는 저장하지 않았다. 

(List(2, 3),List(List(0.2), List(0.3)))

Posted by '김용환'
,