문제

나는 Clojure 커뮤니티에 들어가려고 노력하고 있습니다. 나는 Python으로 많이 작업 해 왔으며, 내가 광범위하게 사용하는 기능 중 하나는 Zip () 방법입니다. 값 쌍을 반복합니다. Clojure에서 동일하게 달성하는 (영리하고 짧은) 방법이 있습니까?

도움이 되었습니까?

해결책

또 다른 방법은 단순히 맵을 다음과 같이 순서대로 수집하는 일부 함수와 함께 맵을 사용하는 것입니다.

user=> (map vector '(1 2 3) "abc")
([1 \a] [2 \b] [3 \c])

다른 팁

(zipmap [:a :b :c] (range 3))
-> {:c 2, :b 1, :a 0}

오버 맵을 반복하면 다음과 같이 쌍을 이루는 것입니다.

(doseq [[k v] (zipmap [:a :b :c] (range 3))]
  (printf "key: %s, value: %s\n" k v))

인쇄물:

key: :c, value: 2
key: :b, value: 1
key: :a, value: 0

질문에 대한 답변이 있었지만 여전히 interleave, 또한 임의의 시퀀스를 처리하지만 결과 시퀀스를 튜플로 그룹화하지는 않습니다 (그러나 사용할 수 있습니다. partition 그에 대한).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top