Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah saya boleh mencari subrentetan dengan cekap dalam senarai rentetan dalam Python?

Bagaimanakah saya boleh mencari subrentetan dengan cekap dalam senarai rentetan dalam Python?

Linda Hamilton
Linda Hamiltonasal
2024-12-10 01:44:09830semak imbas

How Can I Efficiently Find Substrings Within a List of Strings in Python?

Mengesan Subrentetan dalam Senarai Rentetan

Menentukan sama ada rentetan tertentu, seperti 'abc', muncul dalam elemen individu sesuatu list adalah tugas biasa dalam pengaturcaraan. Dalam Python, ini boleh dicapai menggunakan operator 'dalam' untuk memadankan subrentetan dalam rentetan. Walau bagaimanapun, pendekatan ini mungkin tidak selalu memberikan hasil yang diingini.

Pertimbangkan senarai rentetan berikut:

xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

Jika kami cuba menyemak sama ada 'abc' hadir dalam senarai menggunakan ungkapan berikut:

if 'abc' in xs:

ia akan kembali Palsu. Ini kerana 'in' menyemak padanan tepat dan 'abc' bukan padanan tepat untuk mana-mana item dalam senarai.

Untuk mengatasi had ini, kami boleh menggunakan mana-mana dan dalam fungsi Python untuk menentukan sama ada ' abc' muncul dalam mana-mana rentetan dalam senarai:

if any("abc" in s for s in xs):
    # ...

Ungkapan ini akan kembali Benar kerana 'abc' ialah subrentetan 'abc-123' dan 'abc-456'.

Selain itu, kita boleh mendapatkan senarai semua item yang mengandungi 'abc' menggunakan pemahaman senarai:

matching = [s for s in xs if "abc" in s]

Ini akan menghasilkan senarai yang mengandungi elemen 'abc-123' dan 'abc-456'.

Menggunakan teknik ini, pembangun boleh mencari dan mengesan dengan berkesan subrentetan dalam senarai rentetan, membolehkan pemprosesan data yang lebih komprehensif dan tepat.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mencari subrentetan dengan cekap dalam senarai rentetan 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