Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menggunakan Pemahaman Senarai dengan Cekap untuk Tugasan Bersyarat dalam Python?

Bagaimanakah Saya Boleh Menggunakan Pemahaman Senarai dengan Cekap untuk Tugasan Bersyarat dalam Python?

DDD
Lepaskan: 2024-12-20 15:07:12
asal
651 orang telah melayarinya

How Can I Efficiently Use List Comprehensions for Conditional Assignments in Python?

Menggunakan Pemahaman Senarai untuk Tugasan Bersyarat

Dalam perbincangan baru-baru ini, seorang pengaturcara menghadapi cabaran dalam menukar gelung untuk dengan if/ else struktur ke dalam pemahaman senarai ringkas. Segmen kod asal kelihatan seperti:

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

Niatnya adalah untuk menetapkan rentetan kosong kepada elemen dalam senarai hasil jika elemen yang sepadan dalam xs ialah Tiada dan untuk menggunakan fungsi f kepada elemen bukan Tiada.

Percubaan awal untuk mencipta pemahaman senarai gagal dengan SyntaxError:

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

Untuk berjaya menggunakan senarai pemahaman untuk tugasan ini, sintaks yang betul ialah:

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

Pengubahsuaian ini mengekalkan susunan semakan if/else, yang penting untuk penilaian yang betul.

Memahami Pemahaman Senarai Sintaks

Secara umum, senaraikan pemahaman dengan tugasan bersyarat mematuhi perkara berikut sintaks:

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

di mana:

  • f(x) dan g(x) mewakili ungkapan atau fungsi yang akan digunakan pada elemen berdasarkan keadaan.
  • syarat menentukan sama ada f(x) atau g(x) akan dinilai.

Selain itu, untuk senarai pemahaman yang hanya melibatkan elemen penapisan berdasarkan keadaan, sintaksnya ialah:

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

Ungkapan Bersyarat Melangkaui Pemahaman Senarai

Perlu diperhatikan bahawa ungkapan bersyarat seperti yang digunakan dalam pemahaman senarai tidak eksklusif untuk binaan ini. Ia boleh digunakan dalam pelbagai situasi di mana pilihan antara dua nilai ungkapan diperlukan berdasarkan syarat, dengan tujuan yang sama seperti operator ternary ?: dalam bahasa lain.

Contoh ungkapan bersyarat di luar a pemahaman senarai:

value = 123
print(value, 'is', 'even' if value % 2 == 0 else 'odd')
Salin selepas log masuk

Ungkapan ini menilai sama ada nilai boleh dibahagikan dengan 2 dan mencetak rentetan yang sepadan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Pemahaman Senarai dengan Cekap untuk Tugasan Bersyarat dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan