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 fungsi zip.
  • 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) dengan list(), 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!