Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menapis Rentetan yang Mengandungi Subrentetan Tertentu dalam Python?

Bagaimana untuk Menapis Rentetan yang Mengandungi Subrentetan Tertentu dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-10-20 06:19:02238semak imbas

How to Filter Strings Containing a Specific Substring in Python?

Menapis Rentetan Yang Mengandungi Kandungan Khusus

Menapis senarai rentetan berdasarkan kandungan ialah tugas biasa dalam pengaturcaraan. Dalam kes ini, kami ingin mengekstrak semua rentetan daripada senarai yang mengandungi subrentetan "ab". Ini boleh dicapai dalam pelbagai cara dalam Python.

Pemahaman Senarai

Pendekatan yang paling berkesan ialah menggunakan pemahaman senarai, yang menggabungkan lelaran senarai dan penapisan bersyarat dalam satu ungkapan . Begini cara anda boleh melakukannya:

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

Output:

['ab', 'abc']

Fungsi Penapis

Pilihan lain ialah untuk menggunakan fungsi penapis, yang berulang melalui senarai dan menggunakan kriteria penapisan yang ditentukan oleh fungsi lambda. Dalam Python 2, anda boleh menggunakannya seperti berikut:

<code class="python">ab_strings = filter(lambda k: 'ab' in k, lst)</code>

Dalam Python 3, penapis mengembalikan lelaran dan bukannya senarai, jadi anda boleh sama ada melelakannya secara langsung atau menghantarnya ke senarai:

<code class="python"># Option A: Iterate over the iterable
for k in ab_strings:
    print(k)

# Option B: Cast to a list
ab_strings = list(ab_strings)
print(ab_strings)</code>

Kesimpulan

Kedua-dua pemahaman senarai dan fungsi penapis menyediakan cara yang berkesan untuk menapis senarai rentetan berdasarkan kandungan tertentu. Walau bagaimanapun, pemahaman senarai biasanya lebih disukai kerana sintaksnya yang ringkas dan boleh dibaca.

Atas ialah kandungan terperinci Bagaimana untuk Menapis Rentetan yang Mengandungi Subrentetan Tertentu dalam Python?. 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