Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana Menggunakan dengan Betul jika/lain dalam Pemahaman Senarai Python?

Bagaimana Menggunakan dengan Betul jika/lain dalam Pemahaman Senarai Python?

Barbara Streisand
Lepaskan: 2024-12-16 11:06:11
asal
891 orang telah melayarinya

How to Correctly Use if/else in Python List Comprehensions?

Pemahaman Senarai dengan Ungkapan Bersyarat if/else

Dalam Python, pemahaman senarai menyediakan cara yang elegan untuk mengubah elemen boleh lelar menjadi senarai baharu. Walau bagaimanapun, adalah sukar untuk menterjemahkan gelung tradisional yang mengandungi pernyataan if/else ke dalam pemahaman senarai.

Pernyataan Masalah:

Pertimbangkan gelung untuk berikut:

results = []
for x in xs:
    results.append(f(x) if x is not None else '')
Salin selepas log masuk

Matlamatnya adalah untuk mempunyai '' jika x ialah Tiada dan f(x) sebaliknya menggunakan senarai kefahaman. Percubaan untuk menulis ini sebagai:

[f(x) for x in xs if x is not None else '']
Salin selepas log masuk

menghasilkan SyntaxError. Apakah sintaks yang betul?

Penyelesaian:

Penyelesaian terletak pada susunan elemen dalam pemahaman senarai. Sintaks yang betul ialah:

[f(x) if x is not None else '' for x in xs]
Salin selepas log masuk

Generalisasi:

Secara umum, untuk pemahaman senarai dengan ungkapan bersyarat if/else, sintaksnya ialah:

[f(x) if condition else g(x) for x in sequence]
Salin selepas log masuk

Untuk pemahaman senarai dengan syarat if sahaja (tidak termasuk klausa else), sintaks memudahkan kepada:

[f(x) for x in sequence if condition]
Salin selepas log masuk

Adalah penting untuk membezakan antara pemahaman senarai yang menapis elemen berdasarkan syarat dan ungkapan bersyarat yang menilai kepada nilai tertentu berdasarkan syarat.

Atas ialah kandungan terperinci Bagaimana Menggunakan dengan Betul jika/lain dalam Pemahaman Senarai Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China 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