← Kembali ke kursus
Pelajaran kursus · Python
Pelajaran 17

Pack dan unpack elemen

Bongkar koleksi ke variabel dan kemas kembali dengan *.

Pahami konsepnya

Unpack bongkar koleksi ke variabel: a, b, c = [1, 2, 3] memberi tiga variabel terpisah. Tuple swap a, b = b, a adalah aplikasi tersohornya. Jumlah variabel HARUS sama dengan jumlah elemen — kecuali memakai * untuk menangkap sisanya: first, *rest = [1, 2, 3, 4] memberi first=1, rest=[2, 3, 4].

Pack adalah kebalikannya: * memecah koleksi jadi argumen terpisah. print(*[1, 2, 3]) sama dengan print(1, 2, 3). Pada pemanggilan fungsi: fungsi(*daftar) membongkar daftar jadi argumen posisional; fungsi(**dict) membongkar dict jadi argumen kata kunci.

Dict juga bisa di-unpack: a, b = mydict membongkar KUNCINYA (bukan nilainya). Untuk nilai, gunakan .values() atau .items() — for k, v in d.items() adalah unpack di dalam loop.

Coba contoh kode

# unpack dasar
a, b, c = 1, 2, 3
print(a, b, c)  # 1 2 3

# star menangkap sisanya
first, *tengah, last = [1, 2, 3, 4, 5]
print(first, tengah, last)  # 1 [2, 3, 4] 5

# pack: splat ke fungsi
angka = [10, 20, 30]
print(*angka)  # 10 20 30

# unpack dict
data = {"nama": "Ari", "umur": 17}
for k, v in data.items():
    print(f"{k} = {v}")

Star di sisi KIRI (first, *rest) menangkap sisa elemen saat unpack. Star di sisi KANAN (*angka) memecah koleksi jadi argumen terpisah saat pemanggilan. Dua arah star ini adalah fondasi *args/**kwargs di pelajaran fungsi.

Latihan singkat

Uji: bongkar (10,20,30,40) jadi first, *rest — harus `10 [20, 30, 40]`.