Memahami Fungsi Transpose/Unzip di Python
Saat bekerja dengan data di Python, Anda sering kali perlu memanipulasi list dan tuple. Salah satu operasi umum adalah mengubah list yang berisi tuple 2-item menjadi dua list terpisah. Ini bisa sangat penting untuk analisis data, di mana Anda mungkin ingin memisahkan kunci dari nilai atau sekadar mengkategorikan data untuk manipulasi yang lebih mudah.
Masalahnya
Bayangkan Anda memiliki list tuple seperti berikut:
original = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
Tujuan Anda adalah mengubah list ini menjadi dua list individu:
- Satu list harus berisi elemen pertama:
['a', 'b', 'c', 'd']
- List kedua harus berisi elemen kedua:
[1, 2, 3, 4]
Operasi ini dapat digambarkan sebagai “unzipping” tuple, atau menerapkan fungsi transpose di mana sumbu data ditukar.
Solusinya
Untungnya, Python menyediakan fungsi bawaan yang disebut zip
yang dapat membantu dalam hal ini. Mari kita tinjau bagaimana menggunakannya di Python 2.x dan Python 3.x.
Menggunakan zip
di Python 2.x
Di Python 2.x, zip
bertindak sebagai inversnya sendiri ketika Anda menerapkan operator khusus yang dikenal sebagai operator unpacking *
. Berikut adalah cara Anda dapat menerapkannya pada list tuple asli Anda:
result = zip(*original)
# Hasilnya akan: (['a', 'b', 'c', 'd'], [1, 2, 3, 4])
- Operator
*
secara efektif membuka tuple menjadi argumen terpisah untuk fungsizip
. - Ini memberikan Anda versi transposed secara langsung.
Menggunakan zip
di Python 3.x
Python 3.x sedikit memodifikasi perilaku zip
dengan mengembalikan iterator malas alih-alih sebuah list. Namun, masih mudah untuk mengubah ini menjadi list untuk mencapai hasil yang sama seperti di Python 2.x. Berikut adalah kodenya:
result = list(zip(*original))
# Hasilnya akan: (['a', 'b', 'c', 'd'], [1, 2, 3, 4])
- Dengan membungkus
zip(*original)
denganlist()
, Anda mengubah iterator malas menjadi format list untuk kemudahan penggunaan.
Kesimpulan
Sekarang Anda memiliki pemahaman yang baik tentang bagaimana mentranspose atau “unzip” list dari tuple 2-item di Python! Apakah Anda bekerja di Python 2.x atau 3.x, fungsi zip
, ketika dikombinasikan dengan operator unpacking, menawarkan solusi yang elegan untuk memisahkan elemen untuk manipulasi data yang lebih mudah.
Silakan masukkan pendekatan ini ke dalam proyek Python Anda untuk kode yang lebih bersih dan efisien. Selamat berkoding!