Apakah Sintaks yang Betul untuk Pernyataan Bersyarat dalam Pemahaman Senarai dalam Python?

Susan Sarandon
Lepaskan: 2024-10-22 13:14:02
asal
392 orang telah melayarinya

What is the Correct Syntax for Conditional Statements in List Comprehensions in Python?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan