Senaraikan Pemahaman dengan Pernyataan Bersyarat
Dalam Python, pemahaman senarai menawarkan cara yang padat untuk menjana senarai baharu. Walau bagaimanapun, apabila menggunakan pernyataan bersyarat dalam pemahaman ini, adalah penting untuk mematuhi sintaks yang betul untuk mengelakkan ralat.
Masalah: Membandingkan Iterables
Andaikan kita mempunyai dua iterable, a dan b, dan kami ingin mencipta senarai baharu yang mengandungi elemen yang muncul dalam kedua-dua iterables. Kami mencuba kod berikut:
<code class="python">a = ('q', 'r') b = ('q') print([ y if y not in b for y in a])</code>
Ralat Sintaks
Walau bagaimanapun, kod ini menghasilkan ralat sintaks yang tidak sah, menunjukkan isu dengan fungsi lambda yang digunakan dalam pemahaman .
Penyelesaian: Menyusun Semula Pemahaman
Sintaks yang betul untuk menggunakan pernyataan bersyarat dalam pemahaman senarai ialah meletakkan ungkapan if selepas klausa for. Dalam kes kami, kod yang diperbetulkan ialah:
<code class="python">[y for y in a if y not in b]</code>
Pemahaman ini akan berulang pada a dan menambah elemen pada senarai baharu hanya jika ia tidak terdapat dalam b. Hasilnya harus menghasilkan ['r'], seperti yang dijangkakan.
Sintaksis Alternatif
Sebagai alternatif, kita boleh menggunakan operator ternary if-else untuk mengendalikan logik bersyarat dalam pemahaman senarai:
<code class="python">[y if y not in b else None for y in a]</code>
Kod ini akan mencipta senarai baharu di mana unsur yang tiada dalam b ditambah, manakala unsur lain menerima Tiada nilai.
Atas ialah kandungan terperinci Apakah Sintaks yang Betul untuk Pernyataan Bersyarat dalam Pemahaman Senarai dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!