;; `bilangan` berisi daftar bilangan sampai tak hingga (0 1 2 3 ...)
(def bilangan (range))
(def puluhan [10 20 30])
(def namadepan "Milea")
;; Untuk zip (0 1 2 3 ...) dan [10 20 30] ke dalam vector, panggil `map vector` terhadapnya; begitu pula untuk list
(map vector bilangan puluhan) ; ⇒ ([0 10] [1 20] [2 30])
(map list bilangan puluhan) ; ⇒ ((0 10) (1 20) (2 30))
(map str bilangan puluhan) ; ⇒ ("010" "120" "230")
;; `map` memotong sampai barisan terpendek; perhatikan "e" dan "a" dari "Milea"
(map vector bilangan puluhan namadepan) ; ⇒ ([0 10 "M"] [1 20 "i"] [2 30 "l"])
(map str bilangan puluhan namadepan) ; ⇒ ("010M" "120i" "230l")
;; Untuk unzip, terapkan `map vector` atau `map list`
(apply map list (map vector bilangan puluhan namadepan))
;; ⇒ ((0 1 2) (10 20 30) ("M" "i" "l"))
Contoh berikut berlaku untuk Python 2.x. Terdapat perbedaan antara versi 2 dan 3 terhadap hasil dari fungsi zip(), yaitu sebagai daftar (versi 2) dan objek malas (versi 3).
>>> bilangan = [1, 2, 3]
>>> puluhan = [10, 20, 30]
>>> namadepan = 'Milea'
>>> zipped = zip(bilangan, puluhan)
>>> zipped
[(1, 10), (2, 20), (3, 30)]
>>> zip(*zipped) # unzip
[(1, 2, 3), (10, 20, 30)]
>>> zipped2 = zip(bilangan, puluhan, list(namadepan))
>>> zipped2 # zip, memangkas sampai yang paling pendek
[(1, 10, 'M'), (2, 20, 'i'), (3, 30, 'l')]
>>> zip(*zipped2) # unzip
[(1, 2, 3), (10, 20, 30), ('M', 'i', 'l')]
>>> # pemetaan dengan `None` tidak memangkasnya; dianggap usang dalam Python 3.
>>> map(None, bilangan, puluhan, list(namadepan))
[(1, 10, 'M'), (2, 20, 'i'), (3, 30, 'l'), (None, None, 'e'), (None, None, 'a')]
-- nums berisi daftar bilangan sampai tak hingga [1, 2, 3, ...]
bilangan = [1..]
puluhan = [10, 20, 30]
namadepan = "Milea"
zip bilangan puluhan
-- ⇒ [(1,10), (2,20), (3,30)] — zip, memangkas daftar tak hingga
unzip $ zip bilangan puluhan
-- ⇒ ([1,2,3], [10,20,30]) — unzip
zip3 bilangan puluhan namadepan
-- ⇒ [(1,10,'M'), (2,20,'i'), (3,30,'l')] — zip, memangkas
unzip3 $ zip3 bilangan puluhan namadepan
-- ⇒ ([1,2,3], [10,20,30], "Mil") — unzip