Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menapis Rentetan dalam Senarai Berdasarkan Substrings?

Bagaimana untuk Menapis Rentetan dalam Senarai Berdasarkan Substrings?

Susan Sarandon
Susan Sarandonasal
2024-10-20 06:13:29270semak imbas

How to Filter Strings in a List Based on Substrings?

Menapis Rentetan dalam Senarai Berdasarkan Subrentetan

Memandangkan senarai rentetan, bagaimana kita boleh menapisnya untuk memasukkan hanya rentetan yang mengandungi subrentetan tertentu? Sebagai contoh, jika kami mempunyai senarai ['a', 'ab', 'abc', 'bac'], kami ingin mendapatkan senarai ['ab', 'abc'].

Penyelesaian Menggunakan Pemahaman Senarai

Satu kaedah yang cekap melibatkan penggunaan pemahaman senarai Python:

<code class="python">lst = ['a', 'ab', 'abc', 'bac']
result = [k for k in lst if 'ab' in k]</code>

Kefahaman senarai berulang pada setiap rentetan k dalam lst dan menyemak sama ada subrentetan 'ab ' wujud di dalamnya. Jika benar, k ditambah pada senarai hasil.

Pendekatan Alternatif Menggunakan Penapis

Sebagai alternatif, kita boleh menggunakan fungsi penapis untuk mencapai hasil yang sama:

<code class="python">lst = ['a', 'ab', 'abc', 'bac']
result = list(filter(lambda k: 'ab' in k, lst))</code>

Di sini, fungsi penapis mengambil fungsi lambda yang menyemak kehadiran 'ab' dalam setiap rentetan. Peulang yang terhasil kemudiannya ditukar kepada senarai menggunakan senarai.

Kesimpulan

Kedua-dua pemahaman senarai dan fungsi penapis menawarkan cara yang berkesan untuk menapis senarai rentetan berdasarkan spesifik kandungan. Pilihan antara dua kaedah bergantung pada keutamaan peribadi dan kebolehbacaan kod.

Atas ialah kandungan terperinci Bagaimana untuk Menapis Rentetan dalam Senarai Berdasarkan Substrings?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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