List Comprehensions lwn Gelung Tradisional dalam Python
Python membolehkan anda melakukan lebih banyak perkara dengan kod yang lebih sedikit.
Salah satu caranya adalah melalui list comprehensions.
Ramai pembangun tertanya-tanya: Adakah kod yang lebih pendek sentiasa lebih baik? Patutkah anda menggantikan setiap gelung dengan comprehension?
Berikut adalah cara untuk anda memilih.
Gelung Tradisional
Gelung tradisional berfungsi langkah demi langkah.
- Cipta senarai kosong
- Iterasi melalui data
- Lakukan pengiraan
- Tambah (append) hasil tersebut
Gunakan gelung apabila:
- Logik anda kompleks
- Anda perlu menyahpepijat (debug) pelbagai langkah
- Anda perlu melakukan kesan sampingan (side effects) seperti mencetak atau merekod log
- Anda mempunyai banyak syarat bersarang (nested conditions)
Gelung menjadikan niat anda jelas. Ia membantu pembangun lain membaca kod anda tanpa kekeliruan.
List Comprehensions
Sebuah list comprehension melakukan tugas yang sama dalam satu baris.
- Ia menggabungkan iterasi dan transformasi
- Ia mencipta koleksi baharu secara serta-merta
- Ia biasanya lebih pantas daripada gelung
Gunakan comprehension apabila:
- Tugas tersebut adalah transformasi ringkas
- Anda menapis senarai berdasarkan satu syarat
- Anda ingin menulis kod yang bersih dan ringkas untuk tugas-tugas mudah
Comprehension adalah cekap untuk pembersihan data dan matematik asas.
Perbezaannya
• Panjang Kod: Comprehension adalah lebih pendek. Gelung adalah lebih panjang. • Prestasi: Comprehension sering kali lebih pantas disebabkan oleh pengoptimuman dalaman. • Kebolehbacaan: Comprehension menang untuk tugas ringkas. Gelung menang untuk logik kompleks. • Fleksibiliti: Gelung menawarkan fleksibiliti yang jauh lebih tinggi untuk proses berbilang langkah.
Pendekatan yang Seimbang
Jangan paksa penggunaan comprehension jika ia menjadikan kod sukar dibaca.
Jika anda mendapati diri anda menulis comprehension dengan tiga atau lebih syarat, berhenti. Gunakan gelung tradisional sebagai ganti.
Tulis kod untuk manusia terlebih dahulu. Tulis kod untuk prestasi kedua.
Sumber: https://dev.to/shalinivemuri/list-comprehensions-vs-traditional-loops-in-python-4f6n
Komuniti pembelajaran pilihan: https://t.me/GyaanSetuAi