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]`.