Estimasi Waktu Baca: 2 menit

Deskripsi Fungsi

Fungsi zip() digunakan untuk membentuk iterator berisi item dengan cara mendapatkan iterable (bisa satu atau lebih) yang kemudian digabungkan ke dalam tuple dan dikembalikan.

Sintaks dan Parameter

Sintaks dari fungsi zip() adalah sebagai berikut:


>>> zip(*iterables)

Fungsi zip() hanya menerima satu jenis parameter opsional berupa:

  • iterables – bisa satu atau lebih iterator seperti iterator bawaan python (built-in iterables) string, list, tuple, dict dan lain-lain atau iterator yang ditentukan oleh pengguna (user-defined iterables)

Fungsi zip() mengembalikan nilai sesuai dengan argumen yang diberikan. Jika argumennya

  • kosong – maka fungsi zip() akan mengembalikan iterator kosong
  • satu iterable – maka fungsi zip() akan mengembalikan iterator tuple dengan setiap tupel hanya terdiri dari satu elemen
  • lebih dari satu iterable – maka fungsi zip() akan mengembalikan iterator tuple dengan setiap tuple memiliki elemen dari semua iterable yang menjadi argumennya
  • iterable dengan panjang yang berbeda – maka fungsi zip() akan mengembalikan iterator tuple dengan panjang sama dengan iterable terpendek yang menjadi argumennya.

Contoh Penerapan

Menggunakan Fungsi zip()


# zip() dengan argumen kosong
hasil = zip()
print(hasil)

# ubah iterator ke list
list_hasil = list(hasil)
print(list_hasil)

# zip() dengan satu argumen
angka = [1, 2, 3, 4, 5]

# ubah iterator ke tuple
hasil = zip(angka)
tuple_hasil = tuple(hasil)
print(tuple_hasil)

# zip() dengan dua argumen
terbilang = ['satu', 'dua', 'tiga', 'empat', 'lima']

# ubah iterator ke set
hasil = zip(angka, terbilang)
set_hasil = set(hasil)
print(set_hasil)

Keluaran:


<zip object at 0x7f8b98515fc8>
[]
((1,), (2,), (3,), (4,), (5,))
{(1, 'satu'), (3, 'tiga'), (2, 'dua'), (5, 'lima'), (4, 'empat')}

Dengan Perbedaan Panjang Iterable


set_bil = {1, 2, 3, 4, 5}
list_indo = ['satu', 'dua', 'tiga', 'empat', 'lima', 'enam', 'tujuh']
tuple_eng = ('one', 'two', 'three')

# Menggabungkan set_bil dan list_indo
hasil = zip(set_bil, list_indo)

# Ubah ke list
hasil_set = list(hasil)
print(hasil_set)

# Menggabungkan set_bil, list_indo, dan tuple_eng
hasil = zip(set_bil, list_indo, tuple_eng)

# ubah ke list
hasil_set = list(hasil)
print(hasil_set)

Keluaran:


[(1, 'satu'), (2, 'dua'), (3, 'tiga'), (4, 'empat'), (5, 'lima')]
[(1, 'satu', 'one'), (2, 'dua', 'two'), (3, 'tiga', 'three')]